Crate ascent

source ·
Expand description

Ascent enables writing logic programs in the style of Datalog in Rust.

See the documentation for ascent, one of the main macros of this crate, for more information.

Re-exports§

Modules§

  • This module provides aggregators that can be used in Ascent rules.
  • Provides definitions required for the ascent macro(s), plus traits that custom relations need to implement.
  • Defines the Lattice trait and provides implementations for standard types
  • internal utility functions defined here

Macros§

  • The main macro of the ascent library. Allows writing logical inference rules similar to Datalog.
  • Similar to ascent, allows writing logic programs in Rust.
  • Like ascent, except that the result of an ascent_run invocation is a value containing all the relations defined inside the macro body, and computed to a fixed point.
  • The parallelized version of ascent_run

Structs§

  • A wrapper type that swaps (<= and >=) for PartialOrds, (meet and join) for Lattices, and (top and bottom) for BoundedLattices.

Traits§

  • A Lattice is a PartialOrd where each pair of elements has a least upper bound (join) and a greatest lower bound (meet)