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
ascent
macro(s), plus traits that custom relations need to implement. - lattice
- Defines the
Lattice
trait 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_run
invocation 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>=
) forPartialOrd
s, (meet
andjoin
) forLattice
s, and (top
andbottom
) forBoundedLattice
s.
Traits§
- Lattice
- A
Lattice
is aPartialOrd
where each pair of elements has a least upper bound (join
) and a greatest lower bound (meet
)