naia_shared/world/update/
component_update.rs1use naia_serde::{BitReader, OwnedBitReader};
2
3use crate::{
4 world::component::component_kinds::ComponentKind,
5 world::component::replicate::SplitUpdateResult,
6 ComponentKinds,
7 LocalEntityAndGlobalEntityConverter,
8};
9
10pub struct ComponentUpdate {
12 pub kind: ComponentKind,
14 buffer: OwnedBitReader,
15}
16
17impl ComponentUpdate {
18 pub fn new(kind: ComponentKind, buffer: OwnedBitReader) -> Self {
20 Self { kind, buffer }
21 }
22
23 pub fn reader(&'_ self) -> BitReader<'_> {
25 self.buffer.borrow()
26 }
27
28 pub(crate) fn split_into_waiting_and_ready(
29 self,
30 converter: &dyn LocalEntityAndGlobalEntityConverter,
31 component_kinds: &ComponentKinds,
32 ) -> SplitUpdateResult {
33 let kind = self.kind;
34 component_kinds.split_update(converter, &kind, self)
35 }
36}
37
38pub struct ComponentFieldUpdate {
40 id: u8,
41 buffer: OwnedBitReader,
42}
43
44impl ComponentFieldUpdate {
45 pub fn new(id: u8, buffer: OwnedBitReader) -> Self {
47 Self { id, buffer }
48 }
49
50 pub fn field_id(&self) -> u8 {
52 self.id
53 }
54
55 pub fn reader(&'_ self) -> BitReader<'_> {
57 self.buffer.borrow()
58 }
59}