Rule

Type Alias Rule 

Source
pub type Rule = GenericRule<String, String>;

Aliased Type§

pub struct Rule {
    pub span: Span,
    pub head: GenericActions<String, String>,
    pub body: Vec<GenericFact<String, String>>,
    pub name: String,
    pub ruleset: String,
    pub naive: bool,
    pub no_decomp: bool,
}

Fields§

§span: Span§head: GenericActions<String, String>§body: Vec<GenericFact<String, String>>§name: String

A globally unique name for this rule in the EGraph.

§ruleset: String

The ruleset this rule belongs to. Defaults to "".

§naive: bool

If true, this rule disables seminaive evaluation. The body is matched against the entire database every iteration and the query/action are compiled with the global (read+write) primitive contexts, allowing primitives that read or write the database inside queries and actions. Set via the :naive rule option.

§no_decomp: bool

If true, this rule skips tree-decomposition during query planning and evaluate rules as a single-bag (without decomposing it into smaller queries). Set via the :no-decomp rule option.