Current section

Files

Jump to
okay src okay.erl
Raw

src/okay.erl

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