Exograph.DSL.Query (exograph v0.2.0)

Copy Markdown View Source

Query IR produced by Exograph.DSL.

Summary

Types

join()

@type join() :: {:assoc, atom(), atom(), atom()}

predicate()

@type predicate() ::
  {:matches, atom(), String.t()}
  | {:contains, atom(), String.t()}
  | {:prefix_search, atom(), atom(), String.t()}
  | {:eq, atom(), atom(), term()}
  | {:cmp, atom(), atom(), :> | :< | :>= | :<=, term()}
  | {:in, atom(), atom(), [term()]}

select()

@type select() :: nil | atom() | {:tuple, [atom()]}

source()

@type source() :: :fragment | :definition | :reference | :call_edge

t()

@type t() :: %Exograph.DSL.Query{
  binding: atom(),
  joins: [join()],
  predicates: [predicate()],
  select: select(),
  source: source()
}