diff options
author | Erik Terpstra <39518+eterps@users.noreply.github.com> | 2020-05-17 20:10:39 +0200 |
---|---|---|
committer | Louis Pilfold <louis@lpil.uk> | 2020-05-17 19:50:47 +0100 |
commit | b3407607c4a58efa50239db278d730ef5b503afe (patch) | |
tree | d9f9263cb200f1fc7681581bb6f1b89f57da4769 /gen/src/gleam@string.erl | |
parent | 157b535280ba3d579d4ec3aafb0ec45db7272ca3 (diff) | |
download | gleam_stdlib-b3407607c4a58efa50239db278d730ef5b503afe.tar.gz gleam_stdlib-b3407607c4a58efa50239db278d730ef5b503afe.zip |
string.slice
Diffstat (limited to 'gen/src/gleam@string.erl')
-rw-r--r-- | gen/src/gleam@string.erl | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/gen/src/gleam@string.erl b/gen/src/gleam@string.erl index 1b914c9..c8b76bc 100644 --- a/gen/src/gleam@string.erl +++ b/gen/src/gleam@string.erl @@ -1,7 +1,7 @@ -module(gleam@string). -compile(no_auto_import). --export([is_empty/1, length/1, reverse/1, replace/3, lowercase/1, uppercase/1, compare/2, contains/2, starts_with/2, ends_with/2, split/2, append/2, concat/1, repeat/2, join/2, trim/1, trim_left/1, trim_right/1]). +-export([is_empty/1, length/1, reverse/1, replace/3, lowercase/1, uppercase/1, compare/2, slice/3, contains/2, starts_with/2, ends_with/2, split/2, append/2, concat/1, repeat/2, join/2, trim/1, trim_left/1, trim_right/1]). is_empty(Str) -> Str =:= <<""/utf8>>. @@ -26,6 +26,25 @@ uppercase(A) -> compare(A, B) -> gleam_stdlib:compare_strings(A, B). +erl_slice(A, B, C) -> + string:slice(A, B, C). + +slice(String, Idx, Len) -> + case Idx < 0 of + true -> + TranslatedIdx = length(String) + Idx, + case TranslatedIdx < 0 of + true -> + <<""/utf8>>; + + false -> + erl_slice(String, TranslatedIdx, Len) + end; + + false -> + erl_slice(String, Idx, Len) + end. + erl_contains(A, B) -> gleam_stdlib:string_contains(A, B). |