From 7c11f7da0710bac21b5685074f459ed97ab99047 Mon Sep 17 00:00:00 2001 From: mratsim Date: Tue, 15 May 2018 11:51:59 +0200 Subject: [PATCH] add `$` alias for toString --- stint/io.nim | 11 ++++++++++- tests/test_io.nim | 5 +++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/stint/io.nim b/stint/io.nim index 62233e7..2a6759a 100644 --- a/stint/io.nim +++ b/stint/io.nim @@ -247,7 +247,16 @@ func toString*[bits: static[int]](num: Stint[bits] or StUint[bits]): string {.in # # TODO: Have a default static argument in the previous proc. Currently we get # "Error: type mismatch: got , required type static[int]" - toString(num, 10) + when num.data is SomeInteger: + $num.data + else: + toString(num, 10) + +func `$`*(num: Stint or StUint): string {.inline.}= + when num.data is SomeInteger: + $num.data + else: + toString(num, 10) func toHex*[bits: static[int]](num: Stint[bits] or StUint[bits]): string {.inline.}= ## Convert to a hex string. diff --git a/tests/test_io.nim b/tests/test_io.nim index 617ae04..7d723c6 100644 --- a/tests/test_io.nim +++ b/tests/test_io.nim @@ -61,14 +61,17 @@ suite "Testing input and output procedures": block: let a = 1234567891234567890.stint(128) check: a.toString == "1234567891234567890" + check: $a == "1234567891234567890" block: let a = 1234567891234567890.stuint(128) check: a.toString == "1234567891234567890" + check: $a == "1234567891234567890" block: let a = (-1234567891234567890).stint(128) check: a.toString == "-1234567891234567890" + check: $a == "-1234567891234567890" test "Conversion to hex strings": block: @@ -95,11 +98,13 @@ suite "Testing input and output procedures": let s = "1234567890123456789012345678901234567890123456789" let a = parse(s, StInt[512]) check: a.toString == s + check: $a == s block: let s = "1234567890123456789012345678901234567890123456789" let a = parse(s, StUInt[512]) check: a.toString == s + check: $a == s suite "Testing conversion functions: Hex, Bytes, Endianness using secp256k1 curve":