Current section

Files

Jump to
gleam_stdlib gen src gleam@bit_string.erl
Raw

gen/src/gleam@bit_string.erl

-module(gleam@bit_string).
-compile(no_auto_import).
-export([from_string/1, byte_size/1, append/2, part/3, int_to_u32/1, int_from_u32/1, is_utf8/1, to_string/1]).
-spec from_string(binary()) -> bitstring().
from_string(A) ->
gleam_stdlib:identity(A).
-spec byte_size(bitstring()) -> integer().
byte_size(A) ->
erlang:byte_size(A).
-spec append(bitstring(), bitstring()) -> bitstring().
append(A, B) ->
gleam_stdlib:bit_string_append(A, B).
-spec part(bitstring(), integer(), integer()) -> {ok, bitstring()} |
{error, nil}.
part(A, B, C) ->
gleam_stdlib:bit_string_part_(A, B, C).
-spec int_to_u32(integer()) -> {ok, bitstring()} | {error, nil}.
int_to_u32(A) ->
gleam_stdlib:bit_string_int_to_u32(A).
-spec int_from_u32(bitstring()) -> {ok, integer()} | {error, nil}.
int_from_u32(A) ->
gleam_stdlib:bit_string_int_from_u32(A).
-spec is_utf8(bitstring()) -> boolean().
is_utf8(Bits) ->
case Bits of
<<>> ->
true;
<<_/utf8, Rest/binary>> ->
is_utf8(Rest);
_ ->
false
end.
-spec to_string(bitstring()) -> {ok, binary()} | {error, nil}.
to_string(Bits) ->
case is_utf8(Bits) of
true ->
{ok, gleam_stdlib:identity(Bits)};
false ->
{error, nil}
end.