plymio_fontais v0.2.0 Plymio.Fontais.Guard View Source
Guards (Kernel.defguard/1
).
See Plymio.Fontais
for overview and documentation terms.
Since the guards are macros, the module must be required (Kernel.SpecialForms.require/2
) or imported (Kernel.SpeicalForms.import/2
) first.
Link to this section Summary
Functions
is_empty_list/1
tests whether its argument is a List
and is empty, returning true
if so, otherwise false
is_filled_list/1
tests whether its argument is a List
and has at least one entry, returning true
if so, otherwise false
is_negative_integer/1
tests whether its argument is an Integer
and < 0
, returning true
if so, otherwise false
is_positive_integer/1
tests whether its argument is an Integer
and >= 0
, returning true
if so, otherwise false
is_value_set/1
is a guard that tests whether its argument is
not the same as the unset value, returning true
if so,
otherwise false
is_value_unset/1
is a guard that tests whether its argument is the
same as the unset value, returning true
if so, otherwise
false
is_value_unset_or_nil/1
is a guard (Kernel.defguard/1
) that tests whether its argument is the unset value or nil
, returning true
if so, otherwise false
the_unset_value/0
returns a unique, randomish Atom
Link to this section Functions
is_empty_list/1
tests whether its argument is a List
and is empty, returning true
if so, otherwise false
.
Examples
iex> [1,2,3] |> is_empty_list
false
iex> [] |> is_empty_list
true
iex> fun = fn
...> v when is_empty_list(v) -> true
...> _ -> false
...> end
...> false = [1,2,3] |> fun.()
...> true = [] |> fun.()
...> false = 42 |> fun.()
...> false = :not_a_list |> fun.()
false
is_filled_list/1
tests whether its argument is a List
and has at least one entry, returning true
if so, otherwise false
.
Examples
iex> [1,2,3] |> is_filled_list
true
iex> [] |> is_filled_list
false
iex> fun = fn
...> v when is_filled_list(v) -> true
...> _ -> false
...> end
...> true = [1,2,3] |> fun.()
...> false = [] |> fun.()
...> false = 42 |> fun.()
...> false = :not_a_list |> fun.()
false
is_negative_integer/1
tests whether its argument is an Integer
and < 0
, returning true
if so, otherwise false
.
Examples
iex> 42 |> is_negative_integer
false
iex> 0 |> is_negative_integer
false
iex> -1 |> is_negative_integer
true
iex> fun = fn
...> v when is_negative_integer(v) -> true
...> _ -> false
...> end
...> false = [1,2,3] |> fun.()
...> true = -1 |> fun.()
...> false = 42 |> fun.()
...> false = :not_an_integer |> fun.()
false
is_positive_integer/1
tests whether its argument is an Integer
and >= 0
, returning true
if so, otherwise false
.
Examples
iex> 42 |> is_positive_integer
true
iex> 0 |> is_positive_integer
true
iex> -1 |> is_positive_integer
false
iex> fun = fn
...> v when is_positive_integer(v) -> true
...> _ -> false
...> end
...> false = [1,2,3] |> fun.()
...> false = [] |> fun.()
...> true = 42 |> fun.()
...> false = :not_an_integer |> fun.()
false
is_value_set/1
is a guard that tests whether its argument is
not the same as the unset value, returning true
if so,
otherwise false
.
Examples
iex> 42 |> is_value_set
true
iex> :this_is_set |> is_value_set
true
iex> value = the_unset_value()
...> value |> is_value_set
false
is_value_unset/1
is a guard that tests whether its argument is the
same as the unset value, returning true
if so, otherwise
false
.
Examples
iex> 42 |> is_value_unset
false
iex> :this_is_set |> is_value_unset
false
iex> value = the_unset_value()
...> value |> is_value_unset
true
is_value_unset_or_nil/1
is a guard (Kernel.defguard/1
) that tests whether its argument is the unset value or nil
, returning true
if so, otherwise false
.
Examples
iex> 42 |> is_value_unset_or_nil
false
iex> :this_is_set |> is_value_unset_or_nil
false
iex> value = the_unset_value()
...> value |> is_value_unset_or_nil
true
iex> nil |> is_value_unset_or_nil
true
the_unset_value/0
returns a unique, randomish Atom
.
The actual value does not matter; it is intended to be used
e.g. as the default value for a struct
field.
The Unset Value is used by is_value_set/1
and is_value_unset/1
.
The value is also available at compile time as
@plymio_fontais_the_unset_value
after:
use Plymio.Fontais.Attribute
Examples
iex> is_atom(the_unset_value())
true
iex> is_value_unset(the_unset_value())
true
iex> is_value_set(the_unset_value())
false