Trait fp_rust::common::Observable [−][src]
pub trait Observable<X, T: Subscription<X>> {
fn add_observer(&mut self, observer: Arc<T>);
fn delete_observer(&mut self, observer: Arc<T>);
fn notify_observers(&mut self, x: Arc<X>);
}
Expand description
Observable
memorizes all Subscription
and send notifications.
Arguments
X
- The generic type of broadcasted dataT
- The generic type implementingtrait
Subscription
Remarks
This is an implementation of Observer Pattern of GoF.
NOTE: Inspired by and modified from https://github.com/eliovir/rust-examples/blob/master/design_pattern-observer.rs
Required methods
fn add_observer(&mut self, observer: Arc<T>)
fn add_observer(&mut self, observer: Arc<T>)
fn delete_observer(&mut self, observer: Arc<T>)
fn delete_observer(&mut self, observer: Arc<T>)
fn notify_observers(&mut self, x: Arc<X>)
fn notify_observers(&mut self, x: Arc<X>)
Notify all Subscription
subscribers with a given value Arc<X>
.
Arguments
x
- The givenArc<X>
value for broadcasting.