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§
- aggregators
- This module provides aggregators that can be used in Ascent rules.
- internal
- Provides definitions required for the
ascentmacro(s), plus traits that custom relations need to implement. - lattice
- Defines the
Latticetrait and provides implementations for standard types
Macros§
- ascent
- The main macro of the ascent library. Allows writing logical inference rules similar to Datalog.
- ascent_
par - Similar to
ascent, allows writing logic programs in Rust. - ascent_
run - Like
ascent, except that the result of anascent_runinvocation is a value containing all the relations defined inside the macro body, and computed to a fixed point. - ascent_
run_ par - The parallelized version of
ascent_run - ascent_
source - This macro allows writing Ascent code that can later be included in an actual Ascent program.
Structs§
- Dual
- A wrapper type that swaps (
<=and>=) forPartialOrds, (meetandjoin) forLattices, and (topandbottom) forBoundedLattices.
Traits§
- Lattice
- A
Latticeis aPartialOrdwhere each pair of elements has a least upper bound (join) and a greatest lower bound (meet)