json-as
Version:
The only JSON library you'll need for AssemblyScript. SIMD enabled
36 lines (35 loc) • 846 B
text/typescript
/**
* ATOI optimized for non-exponential integers
* @param str
* @returns
*/
// @ts-ignore: inline
export function atoi<T>(srcStart: usize, srcEnd: usize): T {
// @ts-ignore: type
let val: T = 0;
if (isSigned<T>()) {
if (load<u16>(srcStart) == 45) {
srcStart += 2;
while (srcStart < srcEnd) {
// @ts-ignore: type
val = (val * 10 + (load<u16>(srcStart) - 48)) as T;
srcStart += 2;
}
return -val as T;
} else {
while (srcStart < srcEnd) {
// @ts-ignore: type
val = (val * 10 + (load<u16>(srcStart) - 48)) as T;
srcStart += 2;
}
return val as T;
}
} else {
while (srcStart < srcEnd) {
// @ts-ignore: type
val = (val * 10 + (load<u16>(srcStart) - 48)) as T;
srcStart += 2;
}
return val as T;
}
}