pub trait DataflowOpTrait: Sized {
const TAG: OpTag;
// Required methods
fn description(&self) -> &str;
fn signature(&self) -> Cow<'_, Signature>;
fn substitute(&self, _subst: &Substitution<'_>) -> Self;
// Provided methods
fn other_input(&self) -> Option<EdgeKind> { ... }
fn other_output(&self) -> Option<EdgeKind> { ... }
fn static_input(&self) -> Option<EdgeKind> { ... }
}
Expand description
Trait implemented by all dataflow operations.
Required Associated Constants§
Required Methods§
Sourcefn description(&self) -> &str
fn description(&self) -> &str
A human-readable description of the operation.
Sourcefn substitute(&self, _subst: &Substitution<'_>) -> Self
fn substitute(&self, _subst: &Substitution<'_>) -> Self
Apply a type-level substitution to this OpType, i.e. replace type variables with new types.
Provided Methods§
Sourcefn other_input(&self) -> Option<EdgeKind>
fn other_input(&self) -> Option<EdgeKind>
The edge kind for the non-dataflow or constant inputs of the operation, not described by the signature.
If not None, a single extra output multiport of that kind will be present.
Sourcefn other_output(&self) -> Option<EdgeKind>
fn other_output(&self) -> Option<EdgeKind>
The edge kind for the non-dataflow outputs of the operation, not described by the signature.
If not None, a single extra output multiport of that kind will be present.
Sourcefn static_input(&self) -> Option<EdgeKind>
fn static_input(&self) -> Option<EdgeKind>
The edge kind for a single constant input of the operation, not described by the dataflow signature.
If not None, an extra input port of that kind will be present after the
dataflow input ports and before any DataflowOpTrait::other_input
ports.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.