1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
use ;
/// A named rule with an optional boolean condition expression.
///
/// Rules are created via [`RuleSetBuilder`](super::RuleSetBuilder) or by parsing a DSL
/// string with [`RuleSet::from_dsl()`](super::RuleSet::from_dsl). The condition
/// is `None` until set via the builder's `.when()` method.
/// A rule whose field paths and rule references have been resolved to integer
/// indices for fast evaluation.
///
/// Produced by the compilation step and stored inside a [`RuleSet`](super::RuleSet).
/// The `index` field is the rule's position in topological (dependency) order.
pub
/// Marks a rule as a terminal output of evaluation, with a priority that
/// controls the order in which terminals are checked.
///
/// Lower priority values are evaluated first, enabling deny-before-allow
/// patterns (e.g., a `banned` terminal at priority 0 is checked before an
/// `allowed` terminal at priority 10).