BoxedSubscriptionSend

Struct BoxedSubscriptionSend 

Source
pub struct BoxedSubscriptionSend(/* private fields */);
Expand description

A boxed subscription for shared (multi-threaded) contexts.

This allows storing heterogeneous subscriptions in collections across thread boundaries.

§Why 'static?

Similar to BoxedSubscription, shared subscriptions must be 'static to be truly independent control handles. In multi-threaded contexts, this is even more critical as valid lifetimes across threads are typically 'static (required for Send in many cases, though scoped threads exist, rxRust targets general async/sync usage).

§Examples

use rxrust::prelude::*;

// Create a thread-safe boxed subscription
let sub = BoxedSubscriptionSend::new(());

Implementations§

Source§

impl BoxedSubscriptionSend

Source

pub fn new(subscription: impl Subscription + Send + 'static) -> Self

Create a new thread-safe boxed subscription from any Send subscription type.

Trait Implementations§

Source§

impl Subscription for BoxedSubscriptionSend

Source§

fn unsubscribe(self)

Cancel the subscription (terminal operation, consumes self)
Source§

fn is_closed(&self) -> bool

Check if the subscription is closed (completed or unsubscribed)
Source§

fn unsubscribe_when_dropped(self) -> SubscriptionGuard<Self>
where Self: Sized,

Activates “RAII” behavior for this subscription. That means unsubscribe() will be called automatically as soon as the returned value goes out of scope. 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> BoxedSubscriptionInner for T
where T: Subscription,

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> IntoBoxedSubscription<BoxedSubscription> for T
where T: Subscription + 'static,

Source§

fn into_boxed(self) -> BoxedSubscription

Convert this subscription into a boxed subscription.
Source§

impl<T> IntoBoxedSubscription<BoxedSubscriptionSend> for T
where T: Subscription + Send + 'static,

Source§

fn into_boxed(self) -> BoxedSubscriptionSend

Convert this subscription into a boxed subscription.
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.