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`.
##