Current section

Files

Jump to
gleam_stdlib gen src gleam@bit_builder.erl
Raw

gen/src/gleam@bit_builder.erl

-module(gleam@bit_builder).
-compile(no_auto_import).
-export([prepend/2, append/2, prepend_builder/2, append_builder/2, prepend_string/2, append_string/2, concat/1, from_string/1, from_string_builder/1, from_bit_string/1, to_bit_string/1, byte_size/1]).
-export_type([bit_builder/0]).
-type bit_builder() :: any().
-spec prepend(bit_builder(), bitstring()) -> bit_builder().
prepend(To, Prefix) ->
append_builder(from_bit_string(Prefix), To).
-spec append(bit_builder(), bitstring()) -> bit_builder().
append(To, Suffix) ->
append_builder(To, from_bit_string(Suffix)).
-spec prepend_builder(bit_builder(), bit_builder()) -> bit_builder().
prepend_builder(To, Prefix) ->
append_builder(Prefix, To).
-spec append_builder(bit_builder(), bit_builder()) -> bit_builder().
append_builder(First, Second) ->
gleam_stdlib:iodata_append(First, Second).
-spec prepend_string(bit_builder(), binary()) -> bit_builder().
prepend_string(To, Prefix) ->
append_builder(from_string(Prefix), To).
-spec append_string(bit_builder(), binary()) -> bit_builder().
append_string(To, Suffix) ->
append_builder(To, from_string(Suffix)).
-spec concat(list(bit_builder())) -> bit_builder().
concat(Builders) ->
gleam_stdlib:identity(Builders).
-spec from_string(binary()) -> bit_builder().
from_string(String) ->
gleam_stdlib:wrap_list(String).
-spec from_string_builder(gleam@string_builder:string_builder()) -> bit_builder().
from_string_builder(Builder) ->
gleam_stdlib:identity(Builder).
-spec from_bit_string(bitstring()) -> bit_builder().
from_bit_string(Bits) ->
gleam_stdlib:wrap_list(Bits).
-spec to_bit_string(bit_builder()) -> bitstring().
to_bit_string(Builder) ->
erlang:list_to_bitstring(Builder).
-spec byte_size(bit_builder()) -> integer().
byte_size(Builder) ->
erlang:iolist_size(Builder).