Packages
gleam_stdlib
0.22.0
1.0.3
1.0.2
1.0.1
1.0.0
0.71.0
0.70.0
0.69.0
0.68.1
0.68.0
0.67.1
0.67.0
0.65.0
0.64.0
0.63.2
0.63.1
0.63.0
0.62.1
0.62.0
0.61.0
0.60.0
0.59.0
0.58.0
0.57.0
0.56.0
0.55.0
0.54.0
0.53.0
0.52.0
0.51.0
0.50.0
0.49.0
0.48.0
0.47.0
0.46.0
0.45.0
0.44.0
0.43.0
0.42.0
0.41.0
0.40.0
0.39.0
0.38.0
0.37.0
0.36.0
0.35.1
0.35.0
0.34.0
0.33.1
0.33.0
0.32.1
0.32.0
0.31.0
0.30.2
0.30.1
0.30.0
0.29.2
0.29.1
0.29.0
0.28.2
0.28.1
0.28.0
0.27.0
0.26.1
0.26.0
0.25.0
0.24.0
0.23.0
0.22.3
0.22.2
0.22.1
0.22.0
0.21.0
0.20.0
0.19.3
0.19.2
0.19.1
0.19.0
0.18.1
0.18.0
0.18.0-rc1
0.17.1
0.17.0
0.16.0
0.15.0
0.14.0
0.13.0
0.12.0
0.11.0
0.10.1
0.10.0
0.9.0
0.8.0
0.7.0
0.6.0
0.5.0
0.4.0
0.4.0-rc1
0.3.1
0.3.0
0.2.0
retired
A standard library for the Gleam programming language
Current section
Files
Jump to
Current section
Files
src/gleam@string_builder.erl
-module(gleam@string_builder).
-compile(no_auto_import).
-export([new/0, prepend/2, append/2, prepend_builder/2, append_builder/2, from_strings/1, concat/1, from_string/1, to_string/1, byte_size/1, lowercase/1, uppercase/1, reverse/1, split/2, replace/3, is_equal/2, is_empty/1]).
-export_type([string_builder/0, direction/0]).
-type string_builder() :: any().
-type direction() :: all.
-spec new() -> string_builder().
new() ->
gleam_stdlib:identity([]).
-spec prepend(string_builder(), binary()) -> string_builder().
prepend(Builder, Prefix) ->
append_builder(from_string(Prefix), Builder).
-spec append(string_builder(), binary()) -> string_builder().
append(Builder, Second) ->
append_builder(Builder, from_string(Second)).
-spec prepend_builder(string_builder(), string_builder()) -> string_builder().
prepend_builder(Builder, Prefix) ->
gleam_stdlib:iodata_append(Prefix, Builder).
-spec append_builder(string_builder(), string_builder()) -> string_builder().
append_builder(Builder, Suffix) ->
gleam_stdlib:iodata_append(Builder, Suffix).
-spec from_strings(list(binary())) -> string_builder().
from_strings(Strings) ->
gleam_stdlib:identity(Strings).
-spec concat(list(string_builder())) -> string_builder().
concat(Builders) ->
gleam_stdlib:identity(Builders).
-spec from_string(binary()) -> string_builder().
from_string(String) ->
gleam_stdlib:identity(String).
-spec to_string(string_builder()) -> binary().
to_string(Builder) ->
unicode:characters_to_binary(Builder).
-spec byte_size(string_builder()) -> integer().
byte_size(Builder) ->
erlang:iolist_size(Builder).
-spec lowercase(string_builder()) -> string_builder().
lowercase(Builder) ->
string:lowercase(Builder).
-spec uppercase(string_builder()) -> string_builder().
uppercase(Builder) ->
string:uppercase(Builder).
-spec reverse(string_builder()) -> string_builder().
reverse(Builder) ->
string:reverse(Builder).
-spec split(string_builder(), binary()) -> list(string_builder()).
split(Iodata, Pattern) ->
do_split(Iodata, Pattern).
-spec do_split(string_builder(), binary()) -> list(string_builder()).
do_split(Iodata, Pattern) ->
string:split(Iodata, Pattern, all).
-spec replace(string_builder(), binary(), binary()) -> string_builder().
replace(Builder, Pattern, Substitute) ->
do_replace(Builder, Pattern, Substitute).
-spec do_replace(string_builder(), binary(), binary()) -> string_builder().
do_replace(Iodata, Pattern, Substitute) ->
string:replace(Iodata, Pattern, Substitute, all).
-spec is_equal(string_builder(), string_builder()) -> boolean().
is_equal(A, B) ->
string:equal(A, B).
-spec is_empty(string_builder()) -> boolean().
is_empty(Builder) ->
string:is_empty(Builder).