OutboundQueue

Struct OutboundQueue 

Source
pub struct OutboundQueue { /* private fields */ }
Expand description

The sending half of one connection’s output queue.

Implementations§

Source§

impl OutboundQueue

Source

pub fn new() -> (OutboundQueue, Receiver<ControlMessage>)

Create a queue, returning the receiving half for the connection’s writer.

Source

pub fn with_capacity( capacity: usize, ) -> (OutboundQueue, Receiver<ControlMessage>)

Create a queue of a given depth. Exists so tests can produce congestion without queueing a thousand messages first.

Source

pub fn try_send_all(&self, messages: Vec<ControlMessage>) -> Result<(), Refused>

Admit a whole transition, all of it or none of it.

Atomicity comes from reserving every slot before sending any of them: a permit holds capacity, and dropping the collected permits releases them without having written anything. Failing halfway is therefore impossible rather than merely unlikely.

§Errors

Refused, with nothing queued in every case.

Source

pub fn push_voice(&self, message: ControlMessage) -> VoiceAdmission

Offer one tunnelled voice packet, dropping it if the queue is already too deep for it to arrive in time.

Deliberately not try_send_all: a refused transition is retried, while a refused voice packet is gone, and conflating the two would either close connections over lost audio or replay stale speech.

Source

pub fn must_close(&self) -> bool

Whether the owning task must end this connection.

Source

pub fn mark_fatal(&self)

Mark this connection for teardown.

Source

pub fn depth(&self) -> usize

Messages currently queued.

Trait Implementations§

Source§

impl Debug for OutboundQueue

Source§

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

Formats the value using the given formatter. 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> 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, 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.