-module(okay). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]). -export([run/1, new/0, field/3, is_included_in/2, is_longer/2, is_equal/2, is_gt/2, is_gte/2, is_lt/2, is_lte/2, is_true/1, is_false/1, is_some/1, is_none/1]). -export_type([failure/0, validation_error/0, okay/0]). -type failure() :: {is_greater_failure, integer(), integer()} | {is_greater_or_equal_failure, integer(), integer()} | {is_longer_failure, binary(), integer(), integer()} | {is_lesser_failure, integer(), integer()} | {is_lesser_or_equal_failure, integer(), integer()} | {is_equal_failure, binary(), binary()} | {is_included_in_failure, binary(), binary()} | {is_bool_failure, boolean(), boolean()} | is_some_failure | {is_none_failure, binary()} | {custom_failure, binary()}. -type validation_error() :: {validation_error, binary(), failure()}. -type okay() :: {okay, list(validation_error())}. -file("/Users/gogo/Development/guard/src/okay.gleam", 47). -spec run(okay()) -> {ok, nil} | {error, okay()}. run(Okay) -> case gleam@list:is_empty(erlang:element(2, Okay)) of true -> {ok, nil}; false -> {error, Okay} end. -file("/Users/gogo/Development/guard/src/okay.gleam", 55). -spec new() -> okay(). new() -> {okay, []}. -file("/Users/gogo/Development/guard/src/okay.gleam", 61). -spec field(okay(), binary(), {ok, nil} | {error, failure()}) -> okay(). field(Okay, Field, Result) -> case Result of {error, Failure} -> Updated_failures = lists:append( erlang:element(2, Okay), [{validation_error, Field, Failure}] ), {okay, Updated_failures}; _ -> Okay end. -file("/Users/gogo/Development/guard/src/okay.gleam", 80). -spec is_included_in(FDA, list(FDA)) -> {ok, nil} | {error, failure()}. is_included_in(Value, Whitelist) -> case gleam@list:contains(Whitelist, Value) of true -> {ok, nil}; false -> {error, {is_included_in_failure, gleam@string:inspect(Value), gleam@string:inspect(Whitelist)}} end. -file("/Users/gogo/Development/guard/src/okay.gleam", 98). -spec is_longer(binary(), integer()) -> {ok, nil} | {error, failure()}. is_longer(Value, Length) -> Value_length = string:length(Value), case Value_length > Length of true -> {ok, nil}; false -> {error, {is_longer_failure, Value, Value_length, Length}} end. -file("/Users/gogo/Development/guard/src/okay.gleam", 113). -spec is_equal(FDC, FDC) -> {ok, nil} | {error, failure()}. is_equal(Value, Compare) -> case Value =:= Compare of true -> {ok, nil}; false -> {error, {is_equal_failure, gleam@string:inspect(Value), gleam@string:inspect(Compare)}} end. -file("/Users/gogo/Development/guard/src/okay.gleam", 128). -spec is_gt(integer(), integer()) -> {ok, nil} | {error, failure()}. is_gt(Value, Compare) -> case Value > Compare of true -> {ok, nil}; false -> {error, {is_greater_failure, Value, Compare}} end. -file("/Users/gogo/Development/guard/src/okay.gleam", 142). -spec is_gte(integer(), integer()) -> {ok, nil} | {error, failure()}. is_gte(Value, Compare) -> case Value >= Compare of true -> {ok, nil}; false -> {error, {is_greater_or_equal_failure, Value, Compare}} end. -file("/Users/gogo/Development/guard/src/okay.gleam", 156). -spec is_lt(integer(), integer()) -> {ok, nil} | {error, failure()}. is_lt(Value, Compare) -> case Value < Compare of true -> {ok, nil}; false -> {error, {is_lesser_failure, Value, Compare}} end. -file("/Users/gogo/Development/guard/src/okay.gleam", 170). -spec is_lte(integer(), integer()) -> {ok, nil} | {error, failure()}. is_lte(Value, Compare) -> case Value =< Compare of true -> {ok, nil}; false -> {error, {is_lesser_or_equal_failure, Value, Compare}} end. -file("/Users/gogo/Development/guard/src/okay.gleam", 184). -spec is_true(boolean()) -> {ok, nil} | {error, failure()}. is_true(Value) -> case Value =:= true of true -> {ok, nil}; false -> {error, {is_bool_failure, Value, true}} end. -file("/Users/gogo/Development/guard/src/okay.gleam", 198). -spec is_false(boolean()) -> {ok, nil} | {error, failure()}. is_false(Value) -> case Value =:= false of true -> {ok, nil}; false -> {error, {is_bool_failure, Value, false}} end. -file("/Users/gogo/Development/guard/src/okay.gleam", 212). -spec is_some(gleam@option:option(any())) -> {ok, nil} | {error, failure()}. is_some(Value) -> case Value of {some, _} -> {ok, nil}; none -> {error, is_some_failure} end. -file("/Users/gogo/Development/guard/src/okay.gleam", 226). -spec is_none(gleam@option:option(any())) -> {ok, nil} | {error, failure()}. is_none(Value) -> case Value of none -> {ok, nil}; {some, X} -> {error, {is_none_failure, gleam@string:inspect(X)}} end.