Current section

Files

Jump to
json_canvas src json_canvas@edge@side.erl
Raw

src/json_canvas@edge@side.erl

-module(json_canvas@edge@side).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([decode_side/1]).
-export_type([side/0]).
-type side() :: top | right | bottom | left.
-spec decode_side(gleam@dynamic:dynamic_()) -> {ok, side()} |
{error, list(gleam@dynamic:decode_error())}.
decode_side(Dyn) ->
gleam@result:'try'(gleam@dynamic:string(Dyn), fun(Side) -> case Side of
<<"top"/utf8>> ->
{ok, top};
<<"right"/utf8>> ->
{ok, right};
<<"bottom"/utf8>> ->
{ok, bottom};
<<"left"/utf8>> ->
{ok, left};
_ ->
{error,
[{decode_error,
<<"top, right, bottom or left"/utf8>>,
Side,
[]}]}
end end).