PatternOp

Struct PatternOp 

Source
pub struct PatternOp {
    pub op: OpKind,
    pub roles: BTreeSet<LinearRole>,
    pub layer_kind: Option<LayerKind>,
    pub local: Option<String>,
    pub weight: Option<Format>,
    pub input: Option<Format>,
    pub writes: Option<Format>,
    pub keep: bool,
    pub stored: bool,
    pub sibling: bool,
    pub holds: Option<Format>,
    pub steps: BTreeMap<StepKind, Value>,
}
Expand description

2026-09-28: One element of a rule’s op chain.

Fields§

§op: OpKind

2026-09-28: The op the node must be. For linear with a roles list, any of PatternOp::roles matches and this holds the first.

§roles: BTreeSet<LinearRole>

2026-09-28: Linear roles any of which matches; empty means op exactly.

§layer_kind: Option<LayerKind>

2026-09-28: The node’s layer must be of this kind, when set.

§local: Option<String>

2026-09-28: The node’s template-local id must be this, when set.

§weight: Option<Format>

2026-09-28: The node’s weight format must be this, when set.

§input: Option<Format>

2026-09-28: The format the kernel reads its first input as. Checked after fusion against the format the producing group writes, so a rule set whose kernels disagree on a materialised edge is refused.

§writes: Option<Format>

2026-09-28: The format the kernel stores this element’s outputs in, when it is not the circuit’s declared format (the verify conv stores BF16 where decode keeps F32).

§keep: bool

2026-09-28: The kernel writes this element’s outputs even though a later element reads them, so they may have readers outside the group.

§stored: bool

2026-09-30: The kernel stores this element’s outputs in memory, where a later launch of the group reads them back (a per-run schedule’s conv rows), so they are materialized even when every reader is in the group.

§sibling: bool

2026-09-28: The element joins the group by sitting in the same block as the first element rather than by reading an output of an earlier one (a shared expert beside the routed experts).

§holds: Option<Format>

2026-10-02: The format the kernel hands this element’s outputs to later members of the group in, where it is not the format the plan stores (a sum kept in FP32 registers); None hands them on as stored (crate::pipeline::require).

§steps: BTreeMap<StepKind, Value>

2026-10-02: Steps of this element’s node that the routing runs at another value than the reference requirement (an activation quantized inside the group, a sum rounded to BF16), stated so the plan shows them and the kernel must declare them.

Trait Implementations§

Source§

impl Clone for PatternOp

Source§

fn clone(&self) -> PatternOp

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for PatternOp

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for PatternOp

Source§

fn eq(&self, other: &PatternOp) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for PatternOp

Source§

impl StructuralPartialEq for PatternOp

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.