Expand description
Out-of-tree extension-operation mechanism.
This module implements the ExtensionOp trait and its process-local
registry. Together they let external crates contribute fused primitives
that participate in the crate::std_tensor_op::StdTensorOp graph through
the single carrier variant
StdTensorOp::Extension(Arc<dyn ExtensionOp>).
See docs/spec/extension-op.md for the normative contract. Key points:
- Identity / hashing / equality are expressed on the trait so the
type-erased
Arc<dyn ExtensionOp>carrier can satisfyClone + Hash + Eq + Send + Sync + 'static(computegraph’sGraphOperationrequirements). - AD rules are owned by the semantic AD registry in
tenferro-ad; this extension-operation contract does not import an AD engine. - Extension ops themselves do not require process-global registration.
Frontends carry them directly as
Arc<dyn ExtensionOp>.
Structs§
- Extension
Effect - Backend-neutral resource access declared by an extension payload.
Enums§
- Extension
Alias - One extension-declared output alias.
- Extension
Alias Declaration - Explicit alias declaration returned by an extension payload.
- Extension
Effect Access - Access mode for one extension-declared semantic resource.
- Extension
Effect Declaration - Explicit effect declaration returned by an extension payload.
- Extension
Lowering Error - Error returned when an extension cannot expand itself into standard ops.
- Extension
Standard Lowering - Typed result of trying to lower an extension into standard tensor ops.
Traits§
- Extension
Op - The contract every out-of-tree extension primitive must satisfy.
Type Aliases§
- Extension
Lowering Result - Result returned by
ExtensionOp::lower_to_standard_ops.