From 4adf7b01faa5fe9dce1ffdc02942d63bd5d3bf74 Mon Sep 17 00:00:00 2001 From: shayan javani Date: Mon, 31 Oct 2022 14:16:44 +0330 Subject: renamed from_base_string to base_parse, added documentation for base_parse --- src/gleam/int.gleam | 56 +++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 39 insertions(+), 17 deletions(-) (limited to 'src') 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 -- cgit v1.2.3