-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).