Skip to main content

Consumer

Struct Consumer 

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

Subscribe to arbitrary broadcast/tracks.

Implementations§

Source§

impl Consumer

Source

pub fn info(&self) -> &Info

The broadcast’s static metadata, fixed when it was created.

Source

pub fn route(&self) -> Route

The Route the broadcast currently takes to reach this origin.

Source

pub fn poll_route_changed( &mut self, waiter: &Waiter, ) -> Poll<Result<Route, Error>>

Poll for a route change. See Self::route_changed.

Source

pub async fn route_changed(&mut self) -> Result<Route, Error>

Wait for the broadcast’s Route to change.

The first call returns the current route immediately; each later call blocks until it changes again, so a loop observes the initial value followed by every update. Returns Error::Dropped once every producer is gone.

Source

pub fn track(&self, name: &str) -> Result<Consumer, Error>

Get a handle to a track on this broadcast.

Source

pub fn demand(&self) -> Demand

A watch-only handle to the broadcast’s demand. See Demand.

The consumer-side sibling of Producer::demand, for a holder that has only a read handle: a relay pulling a broadcast from upstream owns no producer for it (the ingesting session does), yet the question it has to answer is whether anything downstream is still reading. Holding this handle, or the Consumer it came from, is not itself demand.

Two endings a caller has to tell apart. Demand going away is Demand::unused resolving, and means nobody downstream is reading. The broadcast going away is Error::Dropped, and here that is the upstream producer, not the readers.

Source

pub async fn closed(&self) -> Error

Block until the broadcast is closed, by Producer::finish, Producer::abort, or every producer dropping, and return the cause.

Returns the error passed to Producer::abort, or Error::Dropped for a Producer::finish or a dropped producer (check Self::is_finished to tell those apart).

Source

pub fn is_closed(&self) -> bool

Returns true if every Producer has been dropped.

Source

pub fn is_finished(&self) -> bool

Whether the broadcast ended via a deliberate Producer::finish, as opposed to aborting or losing its producer. false while the broadcast is still live; an origin uses this to close a front immediately on a deliberate end instead of lingering for a replacement.

Source

pub fn poll_closed(&self, waiter: &Waiter) -> Poll<()>

Register a kio::Waiter that fires when the broadcast closes.

Returns Poll::Ready if already closed, otherwise Poll::Pending after arming the waiter. Useful for composing close-detection into a larger poll without spawning a task per broadcast.

Source

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

Check if this is the exact same instance of a broadcast.

Trait Implementations§

Source§

impl Clone for Consumer

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 Consume<Consumer> for Producer

Source§

fn consume(&self) -> Consumer

Derive a read view (a consumer) from this handle.
Source§

impl Consume<Consumer> for Consumer

Source§

fn consume(&self) -> Consumer

Derive a read view (a consumer) from this handle.

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> Instrument for T

Source§

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

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

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> MaybeSend for T
where T: Send,

Source§

impl<T> MaybeSend for T
where T: Send,

Source§

impl<T> MaybeSend for T
where T: Send + ?Sized,

Source§

impl<T> MaybeSync for T
where T: Sync,

Source§

impl<T> MaybeSync for T
where T: Sync,

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.
Source§

impl<T> WithSubscriber for T

Source§

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
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

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