Observable

Struct Observable 

Source
pub struct Observable<Data> { /* private fields */ }

Implementations§

Source§

impl<Data> Observable<Data>

Source

pub fn new(value: Data) -> Observable<Data>

Examples found in repository?
examples/event.rs (line 6)
3fn main() {
4    let a = 1;
5    println!("Initial value: {}", a);
6    let mut obs1 = Observable::new(a);
7    obs1.add_listener(listener1);
8    obs1.add_listener(listener2);
9    obs1.add_listener(listener3);
10    obs1.change(my_change_function);
11}
Source

pub fn change(&mut self, change_fn: fn(&mut Data))

It takes as an argument a function to change the value of the data, and then notifies all listeners. It doesn’t matter if the new data value is different from the previous ones, the listeners will still be notified.

Examples found in repository?
examples/event.rs (line 10)
3fn main() {
4    let a = 1;
5    println!("Initial value: {}", a);
6    let mut obs1 = Observable::new(a);
7    obs1.add_listener(listener1);
8    obs1.add_listener(listener2);
9    obs1.add_listener(listener3);
10    obs1.change(my_change_function);
11}
Source

pub fn add_listener(&mut self, listener: fn(&Data))

Examples found in repository?
examples/event.rs (line 7)
3fn main() {
4    let a = 1;
5    println!("Initial value: {}", a);
6    let mut obs1 = Observable::new(a);
7    obs1.add_listener(listener1);
8    obs1.add_listener(listener2);
9    obs1.add_listener(listener3);
10    obs1.change(my_change_function);
11}

Trait Implementations§

Source§

impl<Data: Default> Default for Observable<Data>

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<Data> Deref for Observable<Data>

Source§

type Target = Data

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.

Auto Trait Implementations§

§

impl<Data> Freeze for Observable<Data>
where Data: Freeze,

§

impl<Data> RefUnwindSafe for Observable<Data>
where Data: RefUnwindSafe,

§

impl<Data> Send for Observable<Data>
where Data: Send,

§

impl<Data> Sync for Observable<Data>
where Data: Sync,

§

impl<Data> Unpin for Observable<Data>
where Data: Unpin,

§

impl<Data> UnwindSafe for Observable<Data>
where Data: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.