aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorshayan javani <shayan.javani@gmail.com>2022-10-31 14:16:44 +0330
committerLouis Pilfold <louis@lpil.uk>2022-12-21 22:37:08 +0000
commit4adf7b01faa5fe9dce1ffdc02942d63bd5d3bf74 (patch)
tree9e36a3dc8747bb52cd60a88a973f5bf5ce8d284e /src
parent478ca2b32238471dc67983da5c7e1f15bf73175f (diff)
downloadgleam_stdlib-4adf7b01faa5fe9dce1ffdc02942d63bd5d3bf74.tar.gz
gleam_stdlib-4adf7b01faa5fe9dce1ffdc02942d63bd5d3bf74.zip
renamed from_base_string to base_parse, added documentation for base_parse
Diffstat (limited to 'src')
-rw-r--r--src/gleam/int.gleam56
1 files changed, 39 insertions, 17 deletions
diff --git a/src/gleam/int.gleam b/src/gleam/int.gleam
index 65e82f7..eafbade 100644
--- a/src/gleam/int.gleam
+++ b/src/gleam/int.gleam
@@ -106,6 +106,45 @@ if javascript {
"../gleam_stdlib.mjs" "parse_int"
}
+/// Parses a given string as an int in a given base if possible.
+/// Supports only bases 2 to 36, for values outside of which this function returns an `Error(Nil)`.
+///
+/// ## Examples
+///
+/// ```gleam
+/// > base_parse("10", 2)
+/// Ok(2)
+///
+/// > base_parse("30", 16)
+/// Ok(48)
+///
+/// > base_parse("1C", 36)
+/// Ok(48)
+///
+/// > base_parse("48", 1)
+/// Error(Nil)
+///
+/// > base_parse("48", 37)
+/// Error(Nil)
+/// ```
+///
+pub fn base_parse(string: String, base: Int) -> Result(Int, Nil) {
+ case base >= 2 && base <= 36 {
+ True -> do_base_parse(string, base)
+ False -> Error(Nil)
+ }
+}
+
+if erlang {
+ external fn do_base_parse(String, Int) -> Result(Int, Nil) =
+ "gleam_stdlib" "int_from_base_string"
+}
+
+if javascript {
+ external fn do_base_parse(String, Int) -> Result(Int, Nil) =
+ "../gleam_stdlib.mjs" "int_from_base_string"
+}
+
/// Prints a given int to a string.
///
/// ## Examples
@@ -183,23 +222,6 @@ if javascript {
"../gleam_stdlib.mjs" "int_to_base_string"
}
-pub fn from_base_string(string: String, base: Int) -> Result(Int, Nil) {
- case base >= 2 && base <= 36 {
- True -> do_from_base_string(string, base)
- False -> Error(Nil)
- }
-}
-
-if erlang {
- external fn do_from_base_string(String, Int) -> Result(Int, Nil) =
- "gleam_stdlib" "int_from_base_string"
-}
-
-if javascript {
- external fn do_from_base_string(String, Int) -> Result(Int, Nil) =
- "../gleam_stdlib.mjs" "int_from_base_string"
-}
-
/// Prints a given int to a string using base2.
///
/// ## Examples