Skip to main content

ChildOccurrenceProduct

Trait ChildOccurrenceProduct 

Source
pub trait ChildOccurrenceProduct<Shape>: BirthNode
where 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 = ();
}

Required Associated Types§

Source

type Product

Complete shape-owned representation of this closed birth node.

Implementors§

Source§

impl<Node, Shape> ChildOccurrenceProduct<Shape> for Node
where Node: ChildOccurrenceProductAt<ChildHead, Shape>, Shape: ChildOccurrenceShape,

Source§

type Product = <Node as ChildOccurrenceProductAt<ChildHead, Shape>>::Product