blob: b39ddff4f9074d0f38f03d82dcf280b98b35e293 [file] [log] [blame]
#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