aboutsummaryrefslogtreecommitdiff
path: root/src/std/string.gleam
diff options
context:
space:
mode:
Diffstat (limited to 'src/std/string.gleam')
-rw-r--r--src/std/string.gleam36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/std/string.gleam b/src/std/string.gleam
new file mode 100644
index 0000000..9eacb37
--- /dev/null
+++ b/src/std/string.gleam
@@ -0,0 +1,36 @@
+import std/iodata
+import std/list
+
+pub external fn length(String) -> Int = "string" "length"
+
+pub enum ParseError =
+ | ParseError
+
+pub external fn lowercase(String) -> String = "string" "lowercase"
+
+pub external fn uppercase(String) -> String = "string" "uppercase"
+
+pub fn reverse(string) {
+ string
+ |> iodata:new
+ |> iodata:reverse
+ |> iodata:to_string
+}
+
+pub fn split(string, on) {
+ string
+ |> iodata:new
+ |> iodata:split(_, on)
+ |> list:map(_, iodata:to_string)
+}
+
+pub fn replace(string, pattern, with) {
+ string
+ |> iodata:new
+ |> iodata:replace(_, pattern, with)
+ |> iodata:to_string
+}
+
+pub fn append(s1, s2) {
+ iodata:new(s1) |> iodata:append(_, s2) |> iodata:to_string(_)
+}