pub struct NodeMeta {
pub name: String,
pub effectful: bool,
pub kind: FilterKind,
pub cacheable: bool,
pub deterministic: bool,
pub differentiable: bool,
pub distribution: Distribution,
pub input_schema: Option<Schema>,
pub output_schema: Option<Schema>,
}Expand description
A node’s contract, independent of whether it computes or acts.
Fields§
§name: StringThe name/type identifier of the implementation behind this node.
effectful: boolDoes it reach outside the graph — models, tools, people?
The one thing downstream genuinely needs to tell apart: an
effectful node is journaled rather than memoized, and it is
reported as itself in events instead of borrowing a
FilterKind.
kind: FilterKindClassification of a computational node’s behaviour.
FilterKind::Opaque for an effectful node, which has no trained
state to speak of.
cacheable: boolMay this node’s output be cached?
deterministic: boolSame inputs, same output? See FilterMeta::deterministic.
differentiable: boolDoes forward() keep a differentiable graph?
distribution: DistributionWhere it may run.
input_schema: Option<Schema>What it accepts (None = anything).
output_schema: Option<Schema>What it produces (None = unknown).
Implementations§
Source§impl NodeMeta
impl NodeMeta
Sourcepub fn as_filter_meta(&self) -> FilterMeta
pub fn as_filter_meta(&self) -> FilterMeta
The computational half, for consumers that only speak FilterMeta.
Lossy by design: an effectful node has no honest FilterMeta, and
callers should ask NodeMeta::effectful before reaching for this.