zng_var

Trait WeakVar

Source
pub trait WeakVar<T: VarValue>: AnyWeakVar + Clone {
    type Upgrade: Var<T>;

    // Required method
    fn upgrade(&self) -> Option<Self::Upgrade>;

    // Provided method
    fn boxed(self) -> BoxedWeakVar<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) -> BoxedWeakVar<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: VarValue, O: VarValue, S: WeakVar<I>> WeakVar<O> for WeakMapRef<I, O, S>

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<T: VarValue> WeakVar<T> for BoxedWeakVar<T>

Source§

type Upgrade = Box<dyn VarBoxed<T>>

Source§

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

Source§

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

Source§

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