Skip to main content

ReplicationFrameBuilder

Struct ReplicationFrameBuilder 

Source
pub struct ReplicationFrameBuilder {
    pub limits: ReplicationFrameLimits,
}
Expand description

Builds concrete replication frames from a core replication plan.

Fields§

§limits: ReplicationFrameLimits

Builder limits.

Implementations§

Source§

impl ReplicationFrameBuilder

Source

pub const fn new(limits: ReplicationFrameLimits) -> Self

Creates a frame builder with explicit limits.

Source

pub fn binary_capacity_hint( &self, plan: &ReplicationPlan, selection: &ComponentSelection, ) -> usize

Returns a bounded initial byte-capacity hint for direct binary encoding.

The planner estimate supplements fixed wire metadata and is clamped by the active entity, component, and component-byte limits. The result is a hint rather than an encoded-size guarantee because dirty/missing components are resolved during encoding.

Source

pub fn sampled_binary_capacity_hint( &self, station: &Station, plan: &ReplicationPlan, components: &ComponentStore, selection: &ComponentSelection, ) -> usize

Returns a dense-dirty-data initial capacity hint from at most four uniformly distributed entities in plan.

Sampling avoids a full metadata prepass. If any sample has no encodable dirty component, this conservatively returns zero and lets the output buffer grow normally. Nonzero estimates remain bounded by active limits.

Source

pub fn build( &self, client_id: ClientId, server_tick: Tick, station: &Station, plan: &ReplicationPlan, components: &ComponentStore, selection: &ComponentSelection, ) -> ReplicationFrameBuild

Builds a frame from a station plan and component store.

Source

pub fn encode_binary_into( &self, client_id: ClientId, server_tick: Tick, station: &Station, plan: &ReplicationPlan, components: &ComponentStore, selection: &ComponentSelection, out: &mut Vec<u8>, ) -> Result<ReplicationFrameBuildStats, BinaryEncodeError>

Builds and appends one binary replication frame directly into out.

This preserves the same limits, dirty-component filtering, statistics, and wire shape as Self::build followed by BinaryFrameEncoder, without allocating an intermediate entity/component delta tree or cloning component payloads. Existing bytes in out are retained.

Source

pub fn encode_binary_bounded_into( &self, client_id: ClientId, server_tick: Tick, station: &Station, plan: &ReplicationPlan, components: &ComponentStore, selection: &ComponentSelection, max_frame_bytes: usize, out: &mut Vec<u8>, ) -> Result<ReplicationFrameBuildStats, BinaryEncodeError>

Builds and appends one replication frame under a concrete wire-byte budget.

The budget applies only to bytes appended by this frame. If the next entity would exceed it, that entity is rolled back and planning stops.

Trait Implementations§

Source§

impl Clone for ReplicationFrameBuilder

Source§

fn clone(&self) -> ReplicationFrameBuilder

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 Copy for ReplicationFrameBuilder

Source§

impl Debug for ReplicationFrameBuilder

Source§

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

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

impl Default for ReplicationFrameBuilder

Source§

fn default() -> ReplicationFrameBuilder

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

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 = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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.