pub struct Rule {Show 14 fields
pub id: String,
pub pattern: Vec<PatternOp>,
pub kernels: Vec<KernelId>,
pub repeat: Repeat,
pub copies: Option<Repeat>,
pub emitter: String,
pub rows: (u64, u64),
pub modes: BTreeSet<Mode>,
pub requires: BTreeSet<String>,
pub when: BTreeMap<String, String>,
pub numerics: Numerics,
pub priority: i64,
pub cite: String,
pub runs: Vec<RunSelect>,
}Expand description
2026-09-28: One fusion rule.
Fields§
§id: String2026-09-28: Unique id.
pattern: Vec<PatternOp>2026-09-28: The op chain, each element reading an output of the one before.
kernels: Vec<KernelId>2026-09-28: The kernels the emitter launches for the chain, in order. Empty for a chain that runs as a copy-engine transfer (the embedding row copy).
repeat: Repeat2026-09-28: How often the kernels launch per step.
copies: Option<Repeat>2026-09-29: Copy-engine transfers the emitter issues besides its kernels, and how
often; None for none (the verify conv’s state snapshots are per_row_but_last).
emitter: String2026-09-28: The executor’s emitter for this kernel.
rows: (u64, u64)2026-09-28: Inclusive row range.
modes: BTreeSet<Mode>2026-09-28: Modes it applies in.
requires: BTreeSet<String>2026-09-28: Kernel capability bits it needs.
when: BTreeMap<String, String>2026-09-28: Policy settings that must hold (kv_cache_dtype = "bf16").
numerics: Numerics2026-09-28: Numerics class.
priority: i642026-09-28: Higher wins.
cite: String2026-09-28: The dispatch site(s) that make this choice today.
runs: Vec<RunSelect>2026-09-30: A per_run rule’s selectors ([[rule.run]]), in file order; empty for any
other repeat.
Trait Implementations§
impl Eq for Rule
impl StructuralPartialEq for Rule
Auto Trait Implementations§
impl Freeze for Rule
impl RefUnwindSafe for Rule
impl Send for Rule
impl Sync for Rule
impl Unpin for Rule
impl UnwindSafe for Rule
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.