fixes #20244; fixes castSizes warnings (#21102)

* fixes #20244; fixes castSizes warnings

* fixes js

* fixes js

* fixes js

* fixes

* typo

* extend using uint64

* Update lib/std/syncio.nim
This commit is contained in:
ringabout
2022-12-22 15:27:11 +08:00
committed by GitHub
parent 70fe360456
commit 93b59da490
4 changed files with 20 additions and 3 deletions

View File

@@ -944,14 +944,26 @@ func toHex*[T: SomeInteger](x: T, len: Positive): string =
doAssert b.toHex(4) == "1001"
doAssert toHex(62, 3) == "03E"
doAssert toHex(-8, 6) == "FFFFF8"
toHexImpl(cast[BiggestUInt](x), len, x < 0)
when defined(js):
toHexImpl(cast[BiggestUInt](x), len, x < 0)
else:
when T is SomeSignedInt:
toHexImpl(cast[BiggestUInt](BiggestInt(x)), len, x < 0)
else:
toHexImpl(BiggestUInt(x), len, x < 0)
func toHex*[T: SomeInteger](x: T): string =
## Shortcut for `toHex(x, T.sizeof * 2)`
runnableExamples:
doAssert toHex(1984'i64) == "00000000000007C0"
doAssert toHex(1984'i16) == "07C0"
toHexImpl(cast[BiggestUInt](x), 2*sizeof(T), x < 0)
when defined(js):
toHexImpl(cast[BiggestUInt](x), 2*sizeof(T), x < 0)
else:
when T is SomeSignedInt:
toHexImpl(cast[BiggestUInt](BiggestInt(x)), 2*sizeof(T), x < 0)
else:
toHexImpl(BiggestUInt(x), 2*sizeof(T), x < 0)
func toHex*(s: string): string {.rtl.} =
## Converts a bytes string to its hexadecimal representation.