Skip to main content

StreamQueues

Struct StreamQueues 

Source
pub struct StreamQueues {
    pub pcm: BoundedSender<PcmPacket>,
    pub pcm_receiver: BoundedReceiver<PcmPacket>,
    pub events: BoundedSender<SynthesisEvent>,
    pub event_receiver: BoundedReceiver<SynthesisEvent>,
}
Expand description

A streaming endpoint pair with independent bounded PCM and event queues.

The queue separation makes an event consumer stall unable to block PCM delivery (and vice versa). Producers park under backpressure and observe request cancellation while waiting; no unbounded buffering is available.

Fields§

§pcm: BoundedSender<PcmPacket>

PCM producer endpoint.

§pcm_receiver: BoundedReceiver<PcmPacket>

PCM consumer endpoint.

§events: BoundedSender<SynthesisEvent>

Event producer endpoint.

§event_receiver: BoundedReceiver<SynthesisEvent>

Event consumer endpoint.

Implementations§

Source§

impl StreamQueues

Source

pub fn new(capacity: usize) -> Result<Self, EngineError>

Creates distinct bounded queues for PCM and lifecycle events.

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, _span: NoopSpan) -> Self

Instruments this future with a span (no-op when disabled).
Source§

fn in_current_span(self) -> Self

Instruments this future with the current span (no-op when disabled).
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> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V