Trait naia_bevy_server::shared::Protocolize
[−]pub trait Protocolize: 'static + Clone + Sync + Send {
type Kind: ProtocolKindType;
fn kind_of<R>() -> Self::Kind
where
R: ReplicateSafe<Self>;
fn type_to_kind(type_id: TypeId) -> Option<Self::Kind>;
fn read(
bit_reader: &mut BitReader<'_>,
converter: &dyn NetEntityHandleConverter
) -> Self;
fn read_create_update(
bit_reader: &mut BitReader<'_>
) -> ComponentUpdate<Self::Kind>;
fn dyn_ref(&self) -> ReplicaDynRef<'_, Self>;
fn dyn_mut(&mut self) -> ReplicaDynMut<'_, Self>;
fn cast<R>(self) -> Option<R>
where
R: Replicate<Self>;
fn cast_ref<R>(&self) -> Option<&R>
where
R: ReplicateSafe<Self>;
fn cast_mut<R>(&mut self) -> Option<&mut R>
where
R: ReplicateSafe<Self>;
fn extract_and_insert<N, X>(&self, entity: &N, inserter: &mut X)
where
X: ProtocolInserter<Self, N>;
fn write(
&self,
bit_writer: &mut dyn BitWrite,
converter: &dyn NetEntityHandleConverter
);
fn write_update(
&self,
diff_mask: &DiffMask,
bit_writer: &mut dyn BitWrite,
converter: &dyn NetEntityHandleConverter
);
}
Expand description
An Enum with a variant for every Component/Message that can be sent between Client/Host
Required Associated Types
type Kind: ProtocolKindType
Required Methods
fn kind_of<R>() -> Self::Kind where
R: ReplicateSafe<Self>,
fn kind_of<R>() -> Self::Kind where
R: ReplicateSafe<Self>,
Get kind of Replicate type
fn type_to_kind(type_id: TypeId) -> Option<Self::Kind>
fn type_to_kind(type_id: TypeId) -> Option<Self::Kind>
Get kind from a type_id
fn read(
bit_reader: &mut BitReader<'_>,
converter: &dyn NetEntityHandleConverter
) -> Self
fn read(
bit_reader: &mut BitReader<'_>,
converter: &dyn NetEntityHandleConverter
) -> Self
Read from a bit stream to create a new Replica
fn read_create_update(
bit_reader: &mut BitReader<'_>
) -> ComponentUpdate<Self::Kind>
fn read_create_update(
bit_reader: &mut BitReader<'_>
) -> ComponentUpdate<Self::Kind>
Read from a bit stream to create a new Component Update
fn dyn_ref(&self) -> ReplicaDynRef<'_, Self>
fn dyn_ref(&self) -> ReplicaDynRef<'_, Self>
Get an immutable reference to the inner Component/Message as a Replicate trait object
fn dyn_mut(&mut self) -> ReplicaDynMut<'_, Self>
fn dyn_mut(&mut self) -> ReplicaDynMut<'_, Self>
Get an mutable reference to the inner Component/Message as a Replicate trait object
fn cast_ref<R>(&self) -> Option<&R> where
R: ReplicateSafe<Self>,
fn cast_ref<R>(&self) -> Option<&R> where
R: ReplicateSafe<Self>,
Cast to a typed immutable reference to the inner Component/Message
fn cast_mut<R>(&mut self) -> Option<&mut R> where
R: ReplicateSafe<Self>,
fn cast_mut<R>(&mut self) -> Option<&mut R> where
R: ReplicateSafe<Self>,
Cast to a typed mutable reference to the inner Component/Message
fn extract_and_insert<N, X>(&self, entity: &N, inserter: &mut X) where
X: ProtocolInserter<Self, N>,
fn extract_and_insert<N, X>(&self, entity: &N, inserter: &mut X) where
X: ProtocolInserter<Self, N>,
Extract an inner Replicate impl from the Protocolize into a ProtocolInserter impl
fn write(
&self,
bit_writer: &mut dyn BitWrite,
converter: &dyn NetEntityHandleConverter
)
fn write(
&self,
bit_writer: &mut dyn BitWrite,
converter: &dyn NetEntityHandleConverter
)
Writes data into an outgoing byte stream, sufficient to completely recreate the Message/Component on the client
fn write_update(
&self,
diff_mask: &DiffMask,
bit_writer: &mut dyn BitWrite,
converter: &dyn NetEntityHandleConverter
)
fn write_update(
&self,
diff_mask: &DiffMask,
bit_writer: &mut dyn BitWrite,
converter: &dyn NetEntityHandleConverter
)
Write data into an outgoing byte stream, sufficient only to update the mutated Properties of the Message/Component on the client