pub struct OpSpec {
pub op: String,
pub roles: BTreeSet<LinearRole>,
pub weight: BTreeSet<Format>,
pub activation: BTreeSet<Format>,
pub params: Values,
pub feeds: BTreeSet<String>,
pub after: BTreeSet<String>,
pub beside: BTreeSet<String>,
}Expand description
2026-09-29: An op a family implements, with the constraints a node must meet.
Fields§
§op: String2026-09-29: Op base name (linear, paged_attention, …). 2026-10-02: or a quantizer
with its output format (act_quant:nvfp4/g16).
roles: BTreeSet<LinearRole>2026-09-29: For linear: the roles it takes; empty is every role.
weight: BTreeSet<Format>2026-09-29: Allowed weight formats; empty is any.
activation: BTreeSet<Format>2026-09-29: Allowed first-input formats; empty is any.
params: Values2026-09-29: Node template parameters that must hold these values.
feeds: BTreeSet<String>2026-09-29: Ops one of which must read the node’s first output, by base name
(l2_norm) or qualified name (linear:q); empty is no constraint. A kernel that fuses
its consumer (a conv with its L2 norm) implements the op only where that consumer
follows.
after: BTreeSet<String>2026-09-29: Ops one of which must produce the node’s first input, spelled as feeds;
empty is no constraint (a snapshot of the conv window, not of the SSM state).
beside: BTreeSet<String>2026-09-29: Ops one of which must also read the node’s first input, spelled as
feeds; empty is no constraint. A conv kernel that writes its window snapshot and the
L2 norm of its output implements the snapshot only where the L2 norm reads beside it.
Implementations§
Trait Implementations§
impl Eq for OpSpec
impl StructuralPartialEq for OpSpec
Auto Trait Implementations§
impl Freeze for OpSpec
impl RefUnwindSafe for OpSpec
impl Send for OpSpec
impl Sync for OpSpec
impl Unpin for OpSpec
impl UnwindSafe for OpSpec
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.