#[non_exhaustive]pub struct SceneChange {
pub txn: TxnId,
pub source: ChangeSource,
pub history: HistoryMode,
pub ephemeral: bool,
pub change: ItemChange,
}Expand description
One ItemChange plus the context the notification channel needs in order
to be usable as a change feed rather than just a repaint trigger.
This is what
Scene::item_change_signal carries.
#[non_exhaustive]: consumers read it, the scene constructs it.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.txn: TxnIdThe transaction this change belongs to. Every change emitted inside one
write scope — or one SceneTransaction — shares it.
source: ChangeSourceWhose change it is. See ChangeSource.
history: HistoryModeWhat a history above the scene should do with it. See HistoryMode.
ephemeral: boolA change that must be rendered but must not be recorded.
Set for per-frame model churn that is an artefact of animation rather
than an edit: the scene’s own
refresh_dynamic_bounds, which
re-reads every signal-driven AABB each build and so emits a
LocalBoundsChanged per frame for an animating item. An app driving its
own per-frame stream — an item whose transform follows a rotation
signal — marks it the same way with
SceneTransaction::ephemeral, so the knob is not one-sided across the
seam.
change: ItemChangeThe change itself.
Implementations§
Trait Implementations§
Source§impl Clone for SceneChange
impl Clone for SceneChange
Source§fn clone(&self) -> SceneChange
fn clone(&self) -> SceneChange
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl !RefUnwindSafe for SceneChange
impl !Send for SceneChange
impl !Sync for SceneChange
impl !UnwindSafe for SceneChange
impl Freeze for SceneChange
impl Unpin for SceneChange
impl UnsafeUnpin for SceneChange
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.impl<T> ErasedDestructor for Twhere
T: 'static,
§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> ⓘ
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> ⓘ
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