Packages

Amf0 (de)serialisation for Gleam

Current section

Files

Jump to
amf0 src amf0@marker.erl
Raw

src/amf0@marker.erl

-module(amf0@marker).
-compile([no_auto_import, nowarn_unused_vars]).
-export([to_int/1, from_int/1]).
-export_type([marker/0]).
-type marker() :: number |
boolean |
string |
object |
null |
undefined |
reference |
ecma_array |
object_end |
strict_array |
date |
long_string |
unsupported |
xml_document |
typed_object.
-spec to_int(marker()) -> integer().
to_int(Marker) ->
case Marker of
number ->
16#00;
boolean ->
16#01;
string ->
16#02;
object ->
16#03;
null ->
16#05;
undefined ->
16#06;
reference ->
16#07;
ecma_array ->
16#08;
object_end ->
16#09;
strict_array ->
16#0A;
date ->
16#0B;
long_string ->
16#0C;
unsupported ->
16#0D;
xml_document ->
16#0F;
typed_object ->
16#10
end.
-spec from_int(integer()) -> {ok, marker()} | {error, integer()}.
from_int(Value) ->
case Value of
16#00 ->
{ok, number};
16#01 ->
{ok, boolean};
16#02 ->
{ok, string};
16#03 ->
{ok, object};
16#05 ->
{ok, null};
16#06 ->
{ok, undefined};
16#07 ->
{ok, reference};
16#08 ->
{ok, ecma_array};
16#09 ->
{ok, object_end};
16#0A ->
{ok, strict_array};
16#0B ->
{ok, date};
16#0C ->
{ok, long_string};
16#0D ->
{ok, unsupported};
16#0F ->
{ok, xml_document};
16#10 ->
{ok, typed_object};
_ ->
{error, Value}
end.