Skip to main content

ChainDisposal

Struct ChainDisposal 

Source
pub struct ChainDisposal<D1, D2> { /* private fields */ }
Expand description

A disposal that disposes first, then second.

The front-to-back dispose order is a guarantee, not an implementation detail: operators encode their semantics in it. For example, DoBeforeDisposal places its callback in first to run before the source’s disposal, while DoAfterDisposal places it in second to run after.

Implementations§

Source§

impl<D1, D2> ChainDisposal<D1, D2>

Source

pub fn new(first: D1, second: D2) -> Self

Trait Implementations§

Source§

impl<D1, D2> Disposable for ChainDisposal<D1, D2>
where D1: Disposable, D2: Disposable,

Source§

fn dispose(self)

Disposes of the resource.
Source§

impl<'or, T, E, OE, S> From<ChainDisposal<<S as Observable<'or, T, E>>::D, RefCountDisposal<'or, T, E, OE, S>>> for Disposal<'or, T, E, OE, S>
where OE: Observable<'or, T, E>, S: Subject<'or, T, E>,

Source§

fn from(value: ChainDisposal<S::D, RefCountDisposal<'or, T, E, OE, S>>) -> Self

Converts to this type from the input type.
Source§

impl<'or_sub, D> From<ChainDisposal<BoxedDisposal<'or_sub>, D>> for Disposal<'or_sub, D>
where D: Disposable,

Source§

fn from(value: ChainDisposal<BoxedDisposal<'or_sub>, D>) -> Self

Converts to this type from the input type.
Source§

impl<SD, D> From<ChainDisposal<SD, SharedDisposal<BoundDropDisposal<D>>>> for Disposal<SD, D>
where SD: Disposable, D: Disposable,

Source§

fn from(value: ChainDisposal<SD, SharedDisposal<Subscription<D>>>) -> Self

Converts to this type from the input type.
Source§

impl<D, D1> From<ChainDisposal<SharedDisposal<BoundDropDisposal<D1>>, D>> for Disposal<D, D1>
where D: Disposable, D1: Disposable,

Source§

fn from(value: ChainDisposal<SharedDisposal<Subscription<D1>>, D>) -> Self

Converts to this type from the input type.
Source§

impl<D, D1> From<ChainDisposal<SharedDisposal<BoundDropDisposal<D1>>, D>> for Disposal<D, D1>
where D: Disposable, D1: Disposable,

Source§

fn from(value: ChainDisposal<SharedDisposal<Subscription<D1>>, D>) -> Self

Converts to this type from the input type.
Source§

impl<D1, D2> From<ChainDisposal<SharedDisposal<BoundDropDisposal<D2>>, D1>> for Disposal<D1, D2>
where D1: Disposable, D2: Disposable,

Source§

fn from(value: ChainDisposal<SharedDisposal<Subscription<D2>>, D1>) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<D1, D2> Freeze for ChainDisposal<D1, D2>
where D1: Freeze, D2: Freeze,

§

impl<D1, D2> RefUnwindSafe for ChainDisposal<D1, D2>

§

impl<D1, D2> Send for ChainDisposal<D1, D2>
where D1: Send, D2: Send,

§

impl<D1, D2> Sync for ChainDisposal<D1, D2>
where D1: Sync, D2: Sync,

§

impl<D1, D2> Unpin for ChainDisposal<D1, D2>
where D1: Unpin, D2: Unpin,

§

impl<D1, D2> UnsafeUnpin for ChainDisposal<D1, D2>
where D1: UnsafeUnpin, D2: UnsafeUnpin,

§

impl<D1, D2> UnwindSafe for ChainDisposal<D1, D2>
where D1: UnwindSafe, D2: 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<D> DisposableExt for D
where D: Disposable,

Source§

fn into_boxed<'dis>(self) -> BoxedDisposal<'dis>
where Self: MaybeSend + 'dis,

Source§

fn into_subscription<D>(self) -> Subscription<D>
where D: Disposable + From<Self>,

Converts this disposal into a subscription whose inner disposal is created through From.
Source§

fn into_option(self) -> OptionDisposal<Self>

Source§

fn then<D: Disposable>(self, other: D) -> ChainDisposal<Self, D>

Source§

fn into_left<D2: Disposable>(self) -> EitherDisposal<Self, D2>

Source§

fn into_right<D1: Disposable>(self) -> EitherDisposal<D1, Self>

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

Source§

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

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.