| #include "casbin/pch.h" |
| |
| #ifndef XTOI_CPP |
| #define XTOI_CPP |
| |
| #include "casbin/ip_parser/parser/xtoi.h" |
| |
| namespace casbin { |
| |
| std::pair<int, int> xtoi(std::string_view s) { |
| int n = 0; |
| int i = 0; |
| std::pair<int, int> p; |
| for (i = 0; i < s.length(); i++) { |
| if ('0' <= s[i] && s[i] <= '9') { |
| n *= 16; |
| n += int(s[i] - '0'); |
| } else if ('a' <= s[i] && s[i] <= 'f') { |
| n *= 16; |
| n += int(s[i] - 'a') + 10; |
| } else if ('A' <= s[i] && s[i] <= 'F') { |
| n *= 16; |
| n += int(s[i] - 'A') + 10; |
| } else { |
| break; |
| } |
| if (n >= big) { |
| p.first = 0; |
| p.second = i; |
| return p; |
| } |
| } |
| if (i == 0) { |
| p.first = 0; |
| p.second = i; |
| return p; |
| } |
| p.first = n; |
| p.second = i; |
| return p; |
| } |
| |
| } // namespace casbin |
| |
| #endif // XTOI_CPP |