aarondb/engine/rules

Types

pub type ClauseSolver =
  fn(
    state.DbState,
    ast.BodyClause,
    dict.Dict(String, fact.Value),
    set.Set(fact.Datom),
    option.Option(Int),
    option.Option(Int),
  ) -> #(
    List(dict.Dict(String, fact.Value)),
    option.Option(dict.Dict(String, List(internal.StorageChunk))),
  )
pub type PartResolver =
  fn(ast.Part, dict.Dict(String, fact.Value)) -> option.Option(
    fact.Value,
  )

Values

pub fn derive_all_facts(
  db_state: state.DbState,
  rules: List(ast.Rule),
  as_of_tx: option.Option(Int),
  as_of_valid: option.Option(Int),
  solve_clause_with_derived: fn(
    state.DbState,
    ast.BodyClause,
    dict.Dict(String, fact.Value),
    set.Set(fact.Datom),
    option.Option(Int),
    option.Option(Int),
  ) -> #(
    List(dict.Dict(String, fact.Value)),
    option.Option(dict.Dict(String, List(internal.StorageChunk))),
  ),
  resolve_part_optional: fn(
    ast.Part,
    dict.Dict(String, fact.Value),
  ) -> option.Option(fact.Value),
) -> set.Set(fact.Datom)
Search Document