Skip to content

Simple observable pointer for mutable and immutable data on Rust

License

Notifications You must be signed in to change notification settings

KurlykovDanila/simple-observable

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Simple Observable

This simple library is made to notify you when your data changes

Adding a dependency: simple-observable = "0.2.2"

Changing observed values

use simple_observable::Observable;

fn main() {
    let a = 1;
    println!("Initial value: {}", a);
    let mut obs1 = Observable::new(a);
    obs1.add_listener(listener1);
    obs1.add_listener(listener2);
    obs1.add_listener(listener3);
    obs1.change(my_change_function);
}

fn my_change_function(num: &mut i32) {
    *num += 1;
}

fn listener1(num: &i32) {
    println!("(listener1) New value after change: {}", num);
}

fn listener2(num: &i32) {
    println!("(listener2) New value after change: {}", num);
}

fn listener3(num: &i32) {
    println!("(listener3) New value after change: {}", num);
}

Observable is a pointer that can be dereferenced and the data can be accessed directly. However, the data cannot be changed, but only read

It is important to understand that the Observable owns the data and the only way to change the data is to call the change() method.

About

Simple observable pointer for mutable and immutable data on Rust

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages