-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]). -export_type([error/0, validation_error/0, okay/0]). -type error() :: {is_greater, integer(), integer()} | {is_greater_or_equal, integer(), integer()} | {is_longer, binary(), integer(), integer()} | {is_lesser, integer(), integer()} | {is_lesser_or_equal, integer(), integer()} | {is_equal, binary(), binary()} | {is_included_in, binary(), binary()} | {is_bool, boolean(), boolean()}. -type validation_error() :: {validation_error, binary(), error()}. -type okay() :: {okay, list(validation_error())}. -file("/Users/gogo/Development/guard/src/okay.gleam", 28). -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", 36). -spec new() -> okay(). new() -> {okay, []}. -file("/Users/gogo/Development/guard/src/okay.gleam", 41). -spec field(okay(), binary(), {ok, nil} | {error, error()}) -> okay(). field(Okay, Field, Result) -> case Result of {error, Error} -> Updated_errors = lists:append( erlang:element(2, Okay), [{validation_error, Field, Error}] ), {okay, Updated_errors}; _ -> Okay end. -file("/Users/gogo/Development/guard/src/okay.gleam", 57). -spec is_included_in(FDA, list(FDA)) -> {ok, nil} | {error, error()}. is_included_in(Value, Whitelist) -> case gleam@list:contains(Whitelist, Value) of true -> {ok, nil}; false -> {error, {is_included_in, gleam@string:inspect(Value), gleam@string:inspect(Whitelist)}} end. -file("/Users/gogo/Development/guard/src/okay.gleam", 69). -spec is_longer(binary(), integer()) -> {ok, nil} | {error, error()}. is_longer(Value, Length) -> Value_length = string:length(Value), case Value_length > Length of true -> {ok, nil}; false -> {error, {is_longer, Value, Value_length, Length}} end. -file("/Users/gogo/Development/guard/src/okay.gleam", 81). -spec is_equal(FDG, FDG) -> {ok, nil} | {error, error()}. is_equal(Value, Compare) -> case Value =:= Compare of true -> {ok, nil}; false -> {error, {is_equal, gleam@string:inspect(Value), gleam@string:inspect(Compare)}} end. -file("/Users/gogo/Development/guard/src/okay.gleam", 92). -spec is_gt(integer(), integer()) -> {ok, nil} | {error, error()}. is_gt(Value, Compare) -> case Value > Compare of true -> {ok, nil}; false -> {error, {is_greater, Value, Compare}} end. -file("/Users/gogo/Development/guard/src/okay.gleam", 103). -spec is_gte(integer(), integer()) -> {ok, nil} | {error, error()}. is_gte(Value, Compare) -> case Value >= Compare of true -> {ok, nil}; false -> {error, {is_greater_or_equal, Value, Compare}} end. -file("/Users/gogo/Development/guard/src/okay.gleam", 114). -spec is_lt(integer(), integer()) -> {ok, nil} | {error, error()}. is_lt(Value, Compare) -> case Value < Compare of true -> {ok, nil}; false -> {error, {is_lesser, Value, Compare}} end. -file("/Users/gogo/Development/guard/src/okay.gleam", 125). -spec is_lte(integer(), integer()) -> {ok, nil} | {error, error()}. is_lte(Value, Compare) -> case Value =< Compare of true -> {ok, nil}; false -> {error, {is_lesser_or_equal, Value, Compare}} end. -file("/Users/gogo/Development/guard/src/okay.gleam", 136). -spec is_true(boolean()) -> {ok, nil} | {error, error()}. is_true(Value) -> case Value =:= true of true -> {ok, nil}; false -> {error, {is_bool, Value, true}} end. -file("/Users/gogo/Development/guard/src/okay.gleam", 147). -spec is_false(boolean()) -> {ok, nil} | {error, error()}. is_false(Value) -> case Value =:= false of true -> {ok, nil}; false -> {error, {is_bool, Value, false}} end.