-module(formz@definition). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]). -export([make_simple_optional_parse/0, set_widget/2, validate/2]). -export_type([definition/3]). -type definition(FYN, FYO, FYP) :: {definition, fun((formz@field:field(), formz@widget:args()) -> FYN), fun((binary()) -> {ok, FYO} | {error, binary()}), FYO, fun((fun((binary()) -> {ok, FYO} | {error, binary()}), binary()) -> {ok, FYP} | {error, binary()}), FYP}. -file("/Users/benjamin/Projects/formz/formz/src/formz/definition.gleam", 106). -spec make_simple_optional_parse() -> fun((fun((binary()) -> {ok, FYQ} | {error, binary()}), binary()) -> {ok, gleam@option:option(FYQ)} | {error, binary()}). make_simple_optional_parse() -> fun(Fun, Str) -> case Str of <<""/utf8>> -> {ok, none}; _ -> _pipe = Fun(Str), gleam@result:map(_pipe, fun(Field@0) -> {some, Field@0} end) end end. -file("/Users/benjamin/Projects/formz/formz/src/formz/definition.gleam", 123). -spec set_widget( definition(FYW, FYX, FYY), fun((formz@field:field(), formz@widget:args()) -> FYW) ) -> definition(FYW, FYX, FYY). set_widget(Definition, Widget) -> erlang:setelement(2, Definition, Widget). -file("/Users/benjamin/Projects/formz/formz/src/formz/definition.gleam", 145). -spec validate( definition(FZG, FZH, FZI), fun((FZH) -> {ok, FZH} | {error, binary()}) ) -> definition(FZG, FZH, FZI). validate(Def, Fun) -> erlang:setelement(3, Def, fun(Val) -> _pipe = Val, _pipe@1 = (erlang:element(3, Def))(_pipe), gleam@result:'try'(_pipe@1, Fun) end).