pub struct EmitHandle<Args, R = (), C = DefaultCombiner, G = i32>{ /* private fields */ }
Expand description
A handle to a signal that allows the signal to be emitted. Useful in cases where it is
undesireable to allow unresitriced access to a signal while still allowing the signal to be
emitted. Internally, an EmitHandle
uses a WeakSignal. The result of calling emit
on an
EmitHandle
is an Option<C::Output>
where C
is the combiner type of the signal. If the
underlying signal no longer exists, None
is returned.
§Example
use signals2::*;
let sig: Signal<(), i32> = Signal::new();
let emit_handle = sig.get_emit_handle();
sig.connect(|| 1);
assert_eq!(emit_handle.emit(), Some(Some(1)));
std::mem::drop(sig);
assert_eq!(emit_handle.emit(), None);
Trait Implementations§
Source§impl<R, C, G> Emit0<R, C> for EmitHandle<(), R, C, G>
impl<R, C, G> Emit0<R, C> for EmitHandle<(), R, C, G>
Source§impl<R, C, G, T0> Emit1<R, C, T0> for EmitHandle<(T0,), R, C, G>
impl<R, C, G, T0> Emit1<R, C, T0> for EmitHandle<(T0,), R, C, G>
Source§impl<R, C, G, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Emit10<R, C, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> for EmitHandle<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9), R, C, G>
impl<R, C, G, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Emit10<R, C, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> for EmitHandle<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9), R, C, G>
Source§impl<R, C, G, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Emit11<R, C, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> for EmitHandle<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10), R, C, G>
impl<R, C, G, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Emit11<R, C, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> for EmitHandle<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10), R, C, G>
Source§impl<R, C, G, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Emit12<R, C, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> for EmitHandle<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11), R, C, G>
impl<R, C, G, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Emit12<R, C, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> for EmitHandle<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11), R, C, G>
Source§impl<R, C, G, T0, T1> Emit2<R, C, T0, T1> for EmitHandle<(T0, T1), R, C, G>
impl<R, C, G, T0, T1> Emit2<R, C, T0, T1> for EmitHandle<(T0, T1), R, C, G>
Source§impl<R, C, G, T0, T1, T2> Emit3<R, C, T0, T1, T2> for EmitHandle<(T0, T1, T2), R, C, G>
impl<R, C, G, T0, T1, T2> Emit3<R, C, T0, T1, T2> for EmitHandle<(T0, T1, T2), R, C, G>
Source§impl<R, C, G, T0, T1, T2, T3> Emit4<R, C, T0, T1, T2, T3> for EmitHandle<(T0, T1, T2, T3), R, C, G>
impl<R, C, G, T0, T1, T2, T3> Emit4<R, C, T0, T1, T2, T3> for EmitHandle<(T0, T1, T2, T3), R, C, G>
Source§impl<R, C, G, T0, T1, T2, T3, T4> Emit5<R, C, T0, T1, T2, T3, T4> for EmitHandle<(T0, T1, T2, T3, T4), R, C, G>
impl<R, C, G, T0, T1, T2, T3, T4> Emit5<R, C, T0, T1, T2, T3, T4> for EmitHandle<(T0, T1, T2, T3, T4), R, C, G>
Source§impl<R, C, G, T0, T1, T2, T3, T4, T5> Emit6<R, C, T0, T1, T2, T3, T4, T5> for EmitHandle<(T0, T1, T2, T3, T4, T5), R, C, G>
impl<R, C, G, T0, T1, T2, T3, T4, T5> Emit6<R, C, T0, T1, T2, T3, T4, T5> for EmitHandle<(T0, T1, T2, T3, T4, T5), R, C, G>
Source§impl<R, C, G, T0, T1, T2, T3, T4, T5, T6> Emit7<R, C, T0, T1, T2, T3, T4, T5, T6> for EmitHandle<(T0, T1, T2, T3, T4, T5, T6), R, C, G>
impl<R, C, G, T0, T1, T2, T3, T4, T5, T6> Emit7<R, C, T0, T1, T2, T3, T4, T5, T6> for EmitHandle<(T0, T1, T2, T3, T4, T5, T6), R, C, G>
Source§impl<R, C, G, T0, T1, T2, T3, T4, T5, T6, T7> Emit8<R, C, T0, T1, T2, T3, T4, T5, T6, T7> for EmitHandle<(T0, T1, T2, T3, T4, T5, T6, T7), R, C, G>
impl<R, C, G, T0, T1, T2, T3, T4, T5, T6, T7> Emit8<R, C, T0, T1, T2, T3, T4, T5, T6, T7> for EmitHandle<(T0, T1, T2, T3, T4, T5, T6, T7), R, C, G>
Auto Trait Implementations§
impl<Args, R, C, G> Freeze for EmitHandle<Args, R, C, G>
impl<Args, R, C, G> RefUnwindSafe for EmitHandle<Args, R, C, G>
impl<Args, R, C, G> Send for EmitHandle<Args, R, C, G>
impl<Args, R, C, G> Sync for EmitHandle<Args, R, C, G>
impl<Args, R, C, G> Unpin for EmitHandle<Args, R, C, G>
impl<Args, R, C, G> UnwindSafe for EmitHandle<Args, R, C, G>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more