diff options
author | shayan javani <shayan.javani@gmail.com> | 2022-10-31 14:16:44 +0330 |
---|---|---|
committer | Louis Pilfold <louis@lpil.uk> | 2022-12-21 22:37:08 +0000 |
commit | 4adf7b01faa5fe9dce1ffdc02942d63bd5d3bf74 (patch) | |
tree | 9e36a3dc8747bb52cd60a88a973f5bf5ce8d284e /src | |
parent | 478ca2b32238471dc67983da5c7e1f15bf73175f (diff) | |
download | gleam_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.gleam | 56 |
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 |