EndpointOutcome

Struct EndpointOutcome 

Source
pub struct EndpointOutcome<P: Protocol> {
    pub txs: Vec<(Vec<u8>, SocketAddr)>,
    pub events: Vec<ServerEvent<P>>,
    pub header_retransmit: Option<Vec<u8>>,
}
Expand description

Outbound result from a single ProtocolEndpoint::handle_inbound call.

Carries the outbound datagrams the core wants to send plus the server events the core emitted. The run loop consumes this to drive the real UdpSocket and to update the fan-out engine’s cache.

Fields§

§txs: Vec<(Vec<u8>, SocketAddr)>

Outbound datagrams — each (bytes, destination).

§events: Vec<ServerEvent<P>>

Consumer-visible server events.

§header_retransmit: Option<Vec<u8>>

Cached voice-header bytes to rebroadcast to the rest of the module on this tick.

Populated by the stream cache every 21 voice frames to match the xlxd / MMDVMHost cadence — the run loop fans these bytes out to every non-originator peer on the module in addition to the normal voice frame that triggered the cadence.

Empty on the vast majority of ticks.

Implementations§

Source§

impl<P: Protocol> EndpointOutcome<P>

Source

pub const fn empty() -> Self

Construct an empty outcome (no txs, no events, no retransmit).

We cannot derive Default because it would require P: Default, which the sealed Protocol trait intentionally doesn’t bound. Every protocol marker is a ZST so constructing an empty outcome has no data-dependent initialization anyway.

Trait Implementations§

Source§

impl<P: Clone + Protocol> Clone for EndpointOutcome<P>

Source§

fn clone(&self) -> EndpointOutcome<P>

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl<P: Debug + Protocol> Debug for EndpointOutcome<P>

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<P> Freeze for EndpointOutcome<P>

§

impl<P> RefUnwindSafe for EndpointOutcome<P>
where P: RefUnwindSafe,

§

impl<P> Send for EndpointOutcome<P>

§

impl<P> Sync for EndpointOutcome<P>

§

impl<P> Unpin for EndpointOutcome<P>
where P: Unpin,

§

impl<P> UnwindSafe for EndpointOutcome<P>
where P: UnwindSafe,

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.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more