-module(ewe@internal@decoder). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]). -define(FILEPATH, "src/ewe/internal/decoder.gleam"). -export([decode_packet/3, decode_method/1]). -export_type([packet_type/0, abs_path/0, http_packet/0, packet/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 packet_type() :: http_bin | httph_bin. -type abs_path() :: {abs_path, bitstring()}. -type http_packet() :: {http_request, bitstring(), abs_path(), {integer(), integer()}} | {http_header, bitstring(), bitstring()} | http_eoh. -type packet() :: {packet, http_packet(), bitstring()} | {more, gleam@option:option(integer())}. -file("src/ewe/internal/decoder.gleam", 29). ?DOC(false). -spec decode_packet(packet_type(), bitstring(), list(any())) -> {ok, packet()} | {error, gleam@dynamic:dynamic_()}. decode_packet(Type_, Packet, Options) -> ewe_ffi:decode_packet(Type_, Packet, Options). -file("src/ewe/internal/decoder.gleam", 35). ?DOC(false). -spec decode_method(bitstring()) -> {ok, gleam@http:method()} | {error, nil}. decode_method(Method) -> case Method of <<"GET"/utf8>> -> {ok, get}; <<"POST"/utf8>> -> {ok, post}; <<"HEAD"/utf8>> -> {ok, head}; <<"PUT"/utf8>> -> {ok, put}; <<"DELETE"/utf8>> -> {ok, delete}; <<"TRACE"/utf8>> -> {ok, trace}; <<"CONNECT"/utf8>> -> {ok, connect}; <<"OPTIONS"/utf8>> -> {ok, options}; <<"PATCH"/utf8>> -> {ok, patch}; _ -> {error, nil} end.