Current section

Files

Jump to
multipartkit src multipartkit@part.erl
Raw

src/multipartkit@part.erl

-module(multipartkit@part).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/multipartkit/part.gleam").
-export([header/2, headers/2]).
-export_type([part/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.
-type part() :: {part,
list({binary(), binary()}),
gleam@option:option(binary()),
gleam@option:option(binary()),
gleam@option:option(binary()),
bitstring()}.
-file("src/multipartkit/part.gleam", 47).
-spec find_header(list({binary(), binary()}), binary()) -> list(binary()).
find_header(Headers, Name) ->
gleam@list:filter_map(
Headers,
fun(Entry) ->
case multipartkit@internal@text:equals_ci(
erlang:element(1, Entry),
Name
) of
true ->
{ok, erlang:element(2, Entry)};
false ->
{error, nil}
end
end
).
-file("src/multipartkit/part.gleam", 34).
?DOC(
" Return the first header value whose name matches `name` ASCII\n"
" case-insensitively.\n"
).
-spec header(part(), binary()) -> gleam@option:option(binary()).
header(Part, Name) ->
case find_header(erlang:element(2, Part), Name) of
[First | _] ->
{some, First};
[] ->
none
end.
-file("src/multipartkit/part.gleam", 43).
?DOC(
" Return all header values whose name matches `name` ASCII case-insensitively\n"
" in the order they appear in `part.headers`.\n"
).
-spec headers(part(), binary()) -> list(binary()).
headers(Part, Name) ->
find_header(erlang:element(2, Part), Name).