pub(super) enum NodeContent {
Sequence(Vec<AnimNode>),
Stack(Vec<AnimNode>),
Leaf(Box<dyn EvalDyn>),
Static(Vec<DynItem>),
Audio(Box<AudioTrack>),
}Expand description
What a runtime node IS — the closed vocabulary of the tree.
Each variant earns its seat by having non-desugarable evaluation
semantics (a combinator expressible as pure window placement belongs in
IntoAnimNode::into_anim_node, not here):
NodeContent::Sequence— exclusive selection: the LAST child containing the content time evaluates (children placed with.at()may overlap);NodeContent::Stack— overlay: EVERY child containing the content time evaluates and the outputs sum;NodeContent::Leaf— the open world: any userEvalimplementation, the only type-erased box in the tree;NodeContent::Static— a captured output batch replayed over a window;NodeContent::Audio— a sound leaf, consumed by the seal-time bake.
Variants§
Sequence(Vec<AnimNode>)
Exclusive succession: the LAST child containing the content time evaluates.
Stack(Vec<AnimNode>)
Overlay: EVERY child containing the content time evaluates.
Leaf(Box<dyn EvalDyn>)
A typed evaluator (Eval implementation) — no children.
Static(Vec<DynItem>)
A captured, type-erased static output batch.
Audio(Box<AudioTrack>)
An audio leaf: its track resolves through the seal-time bake.
Boxed: a track is the fattest payload in the tree, and sibling scanning (window checks over many nodes) is cache-bound — nodes stay slim, the track pays one indirection only when audible.
Implementations§
Source§impl NodeContent
impl NodeContent
fn info_kind(&self) -> AnimationInfoKind
Auto Trait Implementations§
impl !RefUnwindSafe for NodeContent
impl !Send for NodeContent
impl !Sync for NodeContent
impl !UnwindSafe for NodeContent
impl Freeze for NodeContent
impl Unpin for NodeContent
impl UnsafeUnpin for NodeContent
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> IntoResult<T> for T
impl<T> IntoResult<T> for T
§fn into_result(self) -> Result<T, RunSystemError>
fn into_result(self) -> Result<T, RunSystemError>
Converts this type into the system output type.
§impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
impl<F, T> IntoSample<T> for Fwhere
T: FromSample<F>,
fn into_sample(self) -> T
§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> TransformedExt for T
impl<T> TransformedExt for T
Source§fn transformed<G>(self, transform: G) -> Transformed<Self, G>
fn transformed<G>(self, transform: G) -> Transformed<Self, G>
Return
self wrapped with transform stored exactly as G.