Packages
mist
6.0.3
6.0.3
6.0.2
6.0.1
6.0.0
5.0.4
5.0.3
5.0.2
5.0.1
5.0.0
5.0.0-rc1
4.0.7
4.0.6
4.0.5
4.0.4
4.0.3
4.0.2
4.0.1
4.0.0
3.0.0
2.0.0
1.2.0
1.1.0
1.0.0
1.0.0-rc3
1.0.0-rc2
1.0.0-rc1
0.17.0
0.15.0
0.14.3
0.14.2
0.14.1
0.14.0
0.13.2
0.13.1
0.13.0
0.12.0
0.11.0
0.10.0
0.9.4
0.9.3
0.9.2
0.9.1
0.9.0
0.8.3
0.8.2
0.8.1
0.8.0
0.7.1
0.7.0
0.6.1
0.6.0
0.5.2
0.5.1
0.5.0
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.3
0.3.2
0.3.1
0.3.0
0.2.1
0.2.0
0.1.3
a misty Gleam web server
Current section
Files
Jump to
Current section
Files
src/mist@internal@buffer.erl
-module(mist@internal@buffer).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/mist/internal/buffer.gleam").
-export([empty/0, new/1, append/2, slice/2, with_capacity/2, size/1]).
-export_type([buffer/0]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
?MODULEDOC(false).
-type buffer() :: {buffer, integer(), bitstring()}.
-file("src/mist/internal/buffer.gleam", 8).
?DOC(false).
-spec empty() -> buffer().
empty() ->
{buffer, 0, <<>>}.
-file("src/mist/internal/buffer.gleam", 12).
?DOC(false).
-spec new(bitstring()) -> buffer().
new(Data) ->
{buffer, 0, Data}.
-file("src/mist/internal/buffer.gleam", 16).
?DOC(false).
-spec append(buffer(), bitstring()) -> buffer().
append(Buffer, Data) ->
Data_size = erlang:byte_size(Data),
Remaining = gleam@int:max(erlang:element(2, Buffer) - Data_size, 0),
{buffer,
Remaining,
<<(erlang:element(3, Buffer))/bitstring, Data/bitstring>>}.
-file("src/mist/internal/buffer.gleam", 22).
?DOC(false).
-spec slice(buffer(), integer()) -> {bitstring(), bitstring()}.
slice(Buffer, Bits) ->
Bytes = Bits * 8,
case erlang:element(3, Buffer) of
<<Value:Bytes/bitstring, Rest/bitstring>> ->
{Value, Rest};
_ ->
{erlang:element(3, Buffer), <<>>}
end.
-file("src/mist/internal/buffer.gleam", 30).
?DOC(false).
-spec with_capacity(buffer(), integer()) -> buffer().
with_capacity(Buffer, Size) ->
{buffer, Size, erlang:element(3, Buffer)}.
-file("src/mist/internal/buffer.gleam", 34).
?DOC(false).
-spec size(integer()) -> buffer().
size(Remaining) ->
{buffer, Remaining, <<>>}.