Packages
🐑 a fluffy Gleam web server
Security advisory:
This version has known vulnerabilities.
View advisories
Current section
Files
Jump to
Current section
Files
src/ewe@internal@decoder.erl
-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.