Ash.Info.Manifest.Operator (ash v3.25.1)

Copy Markdown View Source

Represents a single operator in the filter capabilities catalog.

Built from Ash.Filter.builtin_operators/0.

Canonical name vs. aliases

name is the user-facing operator symbol — the spelling that appears in Ash.Query.filter expressions and that extensions should render to clients (e.g. :==, :<, :in, :is_nil).

aliases carries the legacy/module-derived spellings (e.g. :eq, :less_than). New consumers should key off name. Tools that already render the module-derived names (e.g. some historical ash_graphql input shapes) can substitute via aliases for backward compatibility.

Each per-field %Ash.Info.Manifest.ApplicableOperator{} records name (the canonical symbol), not an alias. Consumers look up the full operator definition via Ash.Info.Manifest.operator_lookup/1.

Summary

Types

t()

@type t() :: %Ash.Info.Manifest.Operator{
  aliases: [atom()],
  custom: map(),
  description: String.t() | nil,
  module: module(),
  name: atom(),
  predicate?: boolean(),
  returns: Ash.Info.Manifest.ArgumentSignature.arg_spec() | :unknown,
  signatures: [Ash.Info.Manifest.ArgumentSignature.t()]
}