From 846cc746a2350ad3f845a4eb0ce97b864891cd35 Mon Sep 17 00:00:00 2001 From: Hamid Bluri Date: Sun, 11 Sep 2022 22:20:06 +0430 Subject: [PATCH] add `fromChar` (#20332) `fromChar` converts `char` to `SomeInteger`, related to `isDigit` --- lib/pure/strutils.nim | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/lib/pure/strutils.nim b/lib/pure/strutils.nim index 3b315e564..ea42c4403 100644 --- a/lib/pure/strutils.nim +++ b/lib/pure/strutils.nim @@ -997,6 +997,15 @@ func toOctal*(c: char): string {.rtl, extern: "nsuToOctal".} = result[i] = chr(val mod 8 + ord('0')) val = val div 8 +func fromChar[T: SomeInteger](ch: char): T = + runnableExamples: + assert fromChar[int8]('6') == 6 + doAssertRaises AssertionDefect: + fromChar[int8]('a') + + assert isDigit(ch) + T(ord(ch) - ord('0')) + func fromBin*[T: SomeInteger](s: string): T = ## Parses a binary integer value from a string `s`. ##