$(uint|uint64) now works with nimscript (#15644)

* $(uint|uint64) now works with nimscript

* fixup
This commit is contained in:
Timothee Cour 2020-10-20 05:26:37 -07:00 • committed by GitHub
commit 3cbe8d2c53
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 23 additions and 22 deletions

View file

@ -19,6 +19,26 @@ when defined(js):
## 64bit ints.
# pending https://github.com/nim-lang/RFCs/issues/187
$(cast[int](x))
else:
proc `$`*(x: uint64): string {.noSideEffect, raises: [].} =
## The stringify operator for an unsigned integer argument. Returns `x`
## converted to a decimal string.
if x == 0:
result = "0"
else:
result = newString(60)
var i = 0
var n = x
while n != 0:
let nn = n div 10'u64
result[i] = char(n - 10'u64 * nn + ord('0'))
inc i
n = nn
result.setLen i
let half = i div 2
# Reverse
for t in 0 .. half-1: swap(result[t], result[i-t-1])
proc `$`*(x: int64): string {.magic: "Int64ToStr", noSideEffect.}
## The stringify operator for an integer argument. Returns `x`