Skip to main content

ReplicaTable

Struct ReplicaTable 

Source
pub struct ReplicaTable {
    pub entities: BTreeMap<EntityId, ReplicaEntity>,
    pub precision: f32,
    pub spawn_ticks: BTreeMap<EntityId, u64>,
    pub datagram_frames: BTreeMap<EntityId, u64>,
    pub stream_tick: u64,
}
Expand description

A client’s table of the entities it has been told about.

Fields§

§entities: BTreeMap<EntityId, ReplicaEntity>§precision: f32§spawn_ticks: BTreeMap<EntityId, u64>

The tick of the stream frame that spawned each entity: a datagram update names it (see crate::datagram). Set only by ReplicaTable::apply_stream.

§datagram_frames: BTreeMap<EntityId, u64>

The last datagram applied to each entity (see crate::datagram).

§stream_tick: u64

The tick of the last stream frame applied with ReplicaTable::apply_stream. A client on an unreliable transport acks each datagram with it, so the server knows which spawns it had.

Implementations§

Source§

impl ReplicaTable

Source

pub fn apply_datagram( &mut self, datagram: &[u8], ) -> Result<DatagramSummary, DecodeError>

Apply one datagram. It changes nothing it cannot apply exactly (see DatagramSummary::skipped). An error means the bytes are not a datagram; the table then may hold part of it.

Source§

impl ReplicaTable

Source

pub fn new() -> Self

Source

pub fn pos(&self, id: EntityId) -> Option<[f32; 3]>

Source

pub fn apply(&mut self, frame: &[u8]) -> Result<FrameSummary, DecodeError>

Apply one frame. On an error the table may hold part of the frame; the caller should treat the connection as broken.

Source

pub fn apply_stream( &mut self, frame: &[u8], tick: u64, ) -> Result<FrameSummary, DecodeError>

Apply one frame from the stream of a subscription that also gets datagrams, with the tick its header carries. The table records the tick each entity spawned at and the tick of the last stream frame, which datagrams and their acks name. A full frame starts that record over, so frames the server dropped before the client got them, or an earlier connection, leave nothing behind.

Trait Implementations§

Source§

impl Clone for ReplicaTable

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ReplicaTable

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for ReplicaTable

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl PartialEq for ReplicaTable

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for ReplicaTable

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.