Expand description
Hierarchical type system resolved at compile time by the
compiler’s TypeSolver. The tree is open via inventory: backends
and DSL authors register new leaves via inventory::submit!. The
Lattice is built once at startup; is_subtype_of walks the
parent chain with caching. The runtime never sees abstract types.
Re-exports§
pub use common_relations::BROADCAST_BINARY;pub use common_relations::ELEMENTWISE;pub use common_relations::MATMUL_BINARY;pub use common_relations::NO_RELATIONS;pub use common_relations::REDUCE_AXIS;pub use common_relations::UNARY_SAME_ELEMENT;pub use lattice::Lattice;pub use relations::CustomRelationCtx;pub use relations::PortRef;pub use relations::RelationResult;pub use relations::TypeRelation;pub use storage::AnyTensor;pub use storage::Dtype;pub use storage::Storage;pub use builtins::*;
Modules§
- builtins
- Built-in
TypeNodeconstants the framework + DSL ship out of the box. - common_
relations - Named
TypeRelationslice constants for the common op shapes. - lattice
- Global lattice of registered
TypeNodes. - relations
- Type relations on ops.
- storage
Storage— static link between a Rust storage type and its IRTypeNode. Library makers declare where in the polymorphism tree their concrete sits by picking theStorageimpl for their associated type.
Structs§
- Type
Node - Static type-identity carrier. Identity is pointer equality;
subtype queries route through
Lattice. - Type
Node Reg - Inventory submission carrier for
TypeNodes.
Enums§
- Type
Kind - Concrete dispatchable leaf vs. abstract interior bound.
Functions§
- lookup_
by_ id - Resolve a
TypeNodeby itsidstring.Noneif no submission has registered that id at startup.