pub struct DeltaSnapshot {
pub tick: u64,
pub timestamp: f64,
pub base_tick: u64,
pub changed: Vec<EntityDelta>,
}Expand description
Compact diff between two GameStateSnapshot values.
Only entities that changed are included. The receiver applies the delta on top of the last ack’d base snapshot to reconstruct the new state.
Fields§
§tick: u64Tick this delta advances the client to.
timestamp: f64§base_tick: u64Which base tick this delta is relative to (last ack’d by client).
changed: Vec<EntityDelta>Implementations§
Source§impl DeltaSnapshot
impl DeltaSnapshot
pub fn new(tick: u64, timestamp: f64, base_tick: u64) -> Self
Sourcepub fn build(base: &GameStateSnapshot, current: &GameStateSnapshot) -> Self
pub fn build(base: &GameStateSnapshot, current: &GameStateSnapshot) -> Self
Build a DeltaSnapshot by diffing base → current.
Sourcepub fn apply(&self, base: &GameStateSnapshot) -> GameStateSnapshot
pub fn apply(&self, base: &GameStateSnapshot) -> GameStateSnapshot
Apply this delta on top of base, producing a new full snapshot.
Sourcepub fn change_count(&self) -> usize
pub fn change_count(&self) -> usize
Count of entities affected by this delta.
Trait Implementations§
Source§impl Clone for DeltaSnapshot
impl Clone for DeltaSnapshot
Source§fn clone(&self) -> DeltaSnapshot
fn clone(&self) -> DeltaSnapshot
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for DeltaSnapshot
impl RefUnwindSafe for DeltaSnapshot
impl Send for DeltaSnapshot
impl Sync for DeltaSnapshot
impl Unpin for DeltaSnapshot
impl UnsafeUnpin for DeltaSnapshot
impl UnwindSafe for DeltaSnapshot
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
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.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.