pub trait ChildOccurrenceProduct<Shape>: BirthNodewhere
Shape: ChildOccurrenceShape,{
type Product;
}Expand description
Sealed occurrence product of a closed direct-child birth node.
The product starts at ChildHead and advances through
ChildTail<Position> in exactly the same way as DispatchBirth and
ChildPosition. A downstream runtime selects only the result shape
through ChildOccurrenceShape; it cannot reclassify a foreign type as a
birth node or replace the recursion.
This product is intentionally direct rather than transitive. Each installed
actor owns the bindings for its own Behavior::Birth; when a concrete child
is installed, the same product law applies to that child’s birth algebra.
Foreign types cannot extend the closed node algebra:
ⓘ
struct RuntimeShape;
impl behavior::ChildOccurrenceShape for RuntimeShape {
type Empty = ();
type Member<Occurrence, Child: behavior::Behavior, Tail> = ();
}
struct ForeignNode;
impl behavior::ChildOccurrenceProduct<RuntimeShape> for ForeignNode {
type Product = ();
}