pub struct HashSubject<O>where
O: HashSetObserver,{ /* private fields */ }Expand description
Implements Subject backed by a
HashSet<T>. T must implement
PartialEq and Hash.
§Examples
use roopes::prelude::*;
use std::{
cell::RefCell,
rc::Rc,
};
use enclose::enclose;
let mut hs = observer::HashSubject::default();
let has_run = Rc::new(RefCell::new(false));
let lc: ObservingCommand<_> = command::Hashable::new(
command::Heap::from(enclose!((has_run) move || {
(*has_run.borrow_mut()) = true;
})),
"Has Run").into();
hs.attach(lc);
assert!(!(*has_run.borrow()));
hs.notify();
assert!((*has_run.borrow()));Implementations§
Source§impl<O> HashSubject<O>where
O: HashSetObserver,
impl<O> HashSubject<O>where
O: HashSetObserver,
Sourcepub fn new(listeners: HashSet<O>) -> HashSubject<O>
pub fn new(listeners: HashSet<O>) -> HashSubject<O>
Creates a new HashSubject with an
interior-mutable listener set.
HashSubject::default is probably
preferable in most situations.
Trait Implementations§
Source§impl<O> AttachableSubject<O> for HashSubject<O>where
O: HashSetObserver,
impl<O> AttachableSubject<O> for HashSubject<O>where
O: HashSetObserver,
Source§impl<O> Default for HashSubject<O>where
O: HashSetObserver,
impl<O> Default for HashSubject<O>where
O: HashSetObserver,
Source§fn default() -> HashSubject<O>
fn default() -> HashSubject<O>
Returns the “default value” for a type. Read more
Source§impl<O> DetachableSubject<O, DetachError> for HashSubject<O>where
O: HashSetObserver,
impl<O> DetachableSubject<O, DetachError> for HashSubject<O>where
O: HashSetObserver,
Source§impl<O> Subject for HashSubject<O>where
O: HashSetObserver,
impl<O> Subject for HashSubject<O>where
O: HashSetObserver,
Auto Trait Implementations§
impl<O> Freeze for HashSubject<O>
impl<O> RefUnwindSafe for HashSubject<O>where
O: RefUnwindSafe,
impl<O> Send for HashSubject<O>where
O: Send,
impl<O> Sync for HashSubject<O>where
O: Sync,
impl<O> Unpin for HashSubject<O>where
O: Unpin,
impl<O> UnwindSafe for HashSubject<O>where
O: UnwindSafe,
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