Current section

Files

Jump to
query_builder lib assoc_list node.ex
Raw

lib/assoc_list/node.ex

defmodule QueryBuilder.AssocList.Node do
@moduledoc false
alias QueryBuilder.AssocList.JoinSpec
alias QueryBuilder.AssocList.PreloadSpec
@type t :: %__MODULE__{
assoc_binding: atom(),
assoc_field: atom(),
assoc_schema: module(),
cardinality: :one | :many,
join_spec: JoinSpec.t(),
preload_spec: PreloadSpec.t() | nil,
nested_assocs: %{optional(atom()) => t()},
source_binding: atom(),
source_schema: module()
}
@enforce_keys [
:assoc_binding,
:assoc_field,
:assoc_schema,
:cardinality,
:join_spec,
:nested_assocs,
:source_binding,
:source_schema
]
defstruct assoc_binding: nil,
assoc_field: nil,
assoc_schema: nil,
cardinality: :one,
join_spec: nil,
preload_spec: nil,
nested_assocs: %{},
source_binding: nil,
source_schema: nil
end