pub struct ComponentData {
pub type_id: u16,
pub data: Vec<u8>,
pub version: u32,
}Expand description
Individual component data stored as a type-tagged byte buffer. Components are identified by a numeric type ID for serialization.
Fields§
§type_id: u16§data: Vec<u8>§version: u32Implementations§
Source§impl ComponentData
impl ComponentData
pub fn new(type_id: u16, data: Vec<u8>) -> Self
pub fn with_version(type_id: u16, data: Vec<u8>, version: u32) -> Self
pub fn size(&self) -> usize
Sourcepub fn content_hash(&self) -> u64
pub fn content_hash(&self) -> u64
Compute a simple FNV-1a hash of the data for change detection.
Sourcepub fn delta_against(&self, baseline: &ComponentData) -> Option<ComponentDelta>
pub fn delta_against(&self, baseline: &ComponentData) -> Option<ComponentDelta>
Produce a delta between this component and another of the same type. Returns None if data is identical.
Sourcepub fn apply_delta(&self, delta: &ComponentDelta) -> ComponentData
pub fn apply_delta(&self, delta: &ComponentDelta) -> ComponentData
Apply a delta to produce a new ComponentData.
Trait Implementations§
Source§impl Clone for ComponentData
impl Clone for ComponentData
Source§fn clone(&self) -> ComponentData
fn clone(&self) -> ComponentData
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 ComponentData
impl RefUnwindSafe for ComponentData
impl Send for ComponentData
impl Sync for ComponentData
impl Unpin for ComponentData
impl UnsafeUnpin for ComponentData
impl UnwindSafe for ComponentData
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.