Current section

Files

Jump to
formz src formz@definition.erl
Raw

src/formz@definition.erl

-module(formz@definition).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([validates/2, transforms/3, set_widget/2]).
-export_type([definition/2]).
-type definition(FYA, FYB) :: {definition,
fun((formz@field:field(), formz@widget:args()) -> FYA),
fun((binary()) -> {ok, FYB} | {error, binary()}),
FYB}.
-file("/Users/benjamin/Projects/formz/formz/src/formz/definition.gleam", 11).
-spec validates(
definition(FYC, FYD),
fun((FYD) -> {ok, FYD} | {error, binary()})
) -> definition(FYC, FYD).
validates(Kind, Next) ->
{definition, Widget, Previous_transform, Placeholder} = Kind,
{definition, Widget, fun(Str) -> case Previous_transform(Str) of
{ok, Value} ->
Next(Value);
{error, Error} ->
{error, Error}
end end, Placeholder}.
-file("/Users/benjamin/Projects/formz/formz/src/formz/definition.gleam", 29).
-spec transforms(
definition(FYK, FYL),
FYO,
fun((FYL) -> {ok, FYO} | {error, binary()})
) -> definition(FYK, FYO).
transforms(Kind, Placeholder, Next) ->
{definition, Widget, Previous_transform, _} = Kind,
{definition, Widget, fun(Str) -> case Previous_transform(Str) of
{ok, Value} ->
Next(Value);
{error, Error} ->
{error, Error}
end end, Placeholder}.
-file("/Users/benjamin/Projects/formz/formz/src/formz/definition.gleam", 48).
-spec set_widget(
definition(FYT, FYU),
fun((formz@field:field(), formz@widget:args()) -> FYT)
) -> definition(FYT, FYU).
set_widget(Kind, Widget) ->
erlang:setelement(2, Kind, Widget).