-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).