View Source Ash.Query.Function behaviour (ash v3.0.0)

A function is a predicate with an arguments list.

For more information on being a predicate, see Ash.Filter.Predicate. Most of the complexities are there. A function must meet both behaviours.

Summary

Callbacks

The number and types of arguments supported.

If true, will be allowed to evaluate nil inputs.

Functions

Evaluate the operator with provided inputs

Attaches the appropriate suffix to refer to an ordinal number, e.g 1 -> "1st"

Types

Callbacks

@callback args() :: [arg()] | :var_args

The number and types of arguments supported.

@callback eager_evaluate?() :: boolean()
@callback evaluate(func :: map()) :: :unknown | {:known, term()} | {:error, term()}
@callback evaluate_nil_inputs?() :: boolean()

If true, will be allowed to evaluate nil inputs.

If false (the default), any nil inputs will cause a nil return.

@callback name() :: atom()
@callback new([term()]) :: {:ok, term()} | {:error, String.t() | Exception.t()}
Link to this callback

partial_evaluate(func)

View Source (optional)
@callback partial_evaluate(func) :: {:ok, func} | {:error, term()} when func: map()
@callback predicate?() :: boolean()
@callback private?() :: boolean()

Functions

Evaluate the operator with provided inputs

Attaches the appropriate suffix to refer to an ordinal number, e.g 1 -> "1st"

Link to this function

try_cast_arguments(configured_args, args)

View Source