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_ffi.erl
-module(ewe_ffi).
-export([decode_packet/3, rescue/1]).
decode_packet(Type, Packet, Options) ->
case erlang:decode_packet(Type, Packet, Options) of
{ok, {http_request, Method, Uri, Version}, Rest} ->
{ok, {packet, {http_request, atom_to_binary(Method), Uri, Version}, Rest}};
{ok, {http_header, Idx, _, Field, Value}, Rest} ->
{ok, {packet, {http_header, Idx, Field, Value}, Rest}};
{ok, Bin, Rest} ->
{ok, {packet, Bin, Rest}};
{more, undefined} ->
{ok, {more, none}};
{more, Length} ->
{ok, {more, {some, Length}}};
{error, Reason} ->
{error, Reason}
end.
rescue(Callable) ->
try {ok, Callable()}
catch
error:Error -> {error, {errored, Error}};
throw:Error -> {error, {thrown, Error}};
exit:Error -> {error, {exited, Error}}
end.