lib/exograph/dsl/plan.ex
defmodule Exograph.DSL.Plan do
@moduledoc false
@type join :: Exograph.DSL.Plan.Join.t()
@type t :: %__MODULE__{
query: Exograph.DSL.Query.t(),
source: Exograph.DSL.Query.source(),
binding: atom(),
joins: [join()],
predicates_by_binding: %{atom() => [Exograph.DSL.Query.predicate()]},
structural_predicates: [Exograph.DSL.Query.predicate()],
select: Exograph.DSL.Query.select()
}
defstruct [
:query,
:source,
:binding,
:select,
joins: [],
predicates_by_binding: %{},
structural_predicates: []
]
end