ash v0.4.0 Ash.Type behaviour View Source
This behaviour is a superset of the Ecto.Type behavior, that also contains api level information, like what kinds of filters are allowed. Eventually, this may be used for composite types or serialization.
Much better to use Ash.Type
than to say @behaviour Ash.Type
and define
everything yourself.
Link to this section Summary
Functions
Returns true if the value is a builtin type or adopts the Ash.Type
behaviour
A list of the built in type names
Casts input (e.g. unknown) data to an instance of the type, or errors
Casts a value from the data store to an instance of the type, or errors
Casts a value from the Elixir type to a value that the data store can persist
Returns the ecto compatible type for an Ash.Type.
Determines if two values of a given type are equal.
Determines whether or not this value can be sorted.
Returns the underlying storage type (the underlying type of the ecto type of the ash type)
Link to this section Types
Specs
Link to this section Functions
Specs
Returns true if the value is a builtin type or adopts the Ash.Type
behaviour
Specs
builtins() :: [atom()]
A list of the built in type names
Specs
Casts input (e.g. unknown) data to an instance of the type, or errors
Maps to Ecto.Type.cast/2
Specs
Casts a value from the data store to an instance of the type, or errors
Maps to Ecto.Type.load/2
Specs
Casts a value from the Elixir type to a value that the data store can persist
Maps to Ecto.Type.dump/2
Specs
ecto_type(t()) :: Ecto.Type.t()
Returns the ecto compatible type for an Ash.Type.
If you use Ash.Type
, this is created for you. For builtin types
this may return a corresponding ecto builtin type (atom)
Specs
Determines if two values of a given type are equal.
Maps to Ecto.Type.equal?/3
Specs
Specs
sortable?(t(), Ash.data_layer()) :: boolean()
Determines whether or not this value can be sorted.
Specs
storage_type(t()) :: Ecto.Type.t()
Returns the underlying storage type (the underlying type of the ecto type of the ash type)
Specs
supports_filter?( Ash.resource(), t(), Ash.DataLayer.filter_type(), Ash.data_layer() ) :: boolean()
Link to this section Callbacks
Specs
Specs
Specs
describe() :: String.t()
Specs
Specs
ecto_type() :: Ecto.Type.t()
Specs
Specs
sortable?(Ash.data_layer()) :: boolean()
Specs
storage_type() :: Ecto.Type.t()
Specs
supported_filter_types(Ash.data_layer()) :: [atom()]