zng::var

Trait WeakVar

Source
pub trait WeakVar<T>: AnyWeakVar + Clone
where T: VarValue,
{ type Upgrade: Var<T>; // Required method fn upgrade(&self) -> Option<Self::Upgrade>; // Provided method fn boxed(self) -> Box<dyn WeakVarBoxed<T>> where Self: Sized { ... } }
Expand description

Represents a weak reference to a Var<T>.

Required Associated Types§

Source

type Upgrade: Var<T>

Output of WeakVar::upgrade.

Required Methods§

Source

fn upgrade(&self) -> Option<Self::Upgrade>

Upgrade to a strong BoxedVar<T> clone.

Returns None if the strong_count is zero.

Provided Methods§

Source

fn boxed(self) -> Box<dyn WeakVarBoxed<T>>
where Self: Sized,

Gets the weak reference a as BoxedWeakVar<T>, does not double box.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<I, O, S> WeakVar<O> for WeakMapRef<I, O, S>
where I: VarValue, O: VarValue, S: WeakVar<I>,

Source§

type Upgrade = MapRef<I, O, <S as WeakVar<I>>::Upgrade>

Source§

impl<I, O, S> WeakVar<O> for WeakMapRefBidi<I, O, S>
where I: VarValue, O: VarValue, S: WeakVar<I>,

Source§

type Upgrade = MapRefBidi<I, O, <S as WeakVar<I>>::Upgrade>

Source§

impl<T> WeakVar<T> for WeakMergeVar<T>
where T: VarValue,

Source§

impl<T> WeakVar<T> for WeakArcVar<T>
where T: VarValue,

Source§

impl<T> WeakVar<T> for WeakContextualizedVar<T>
where T: VarValue,

Source§

impl<T> WeakVar<T> for WeakWhenVar<T>
where T: VarValue,

Source§

impl<T, S> WeakVar<T> for WeakCowVar<T, S>
where T: VarValue, S: Var<T>,

Source§

impl<T, V> WeakVar<T> for WeakFlatMapVar<T, V>
where T: VarValue, V: Var<T>,

Source§

impl<T, V> WeakVar<T> for WeakReadOnlyVar<T, V>
where T: VarValue, V: WeakVar<T>,

Source§

type Upgrade = <<V as WeakVar<T>>::Upgrade as Var<T>>::ReadOnly