lock-free-static

Crates.iolock-free-static
lib.rslock-free-static
version0.2.0
sourcesrc
created_at2023-10-02 03:39:08.145511
updated_at2023-10-26 08:38:06.550018
descriptionLock-free static variables
homepagehttps://gitlab.com/agerasev/lock-free-static
repositoryhttps://gitlab.com/agerasev/lock-free-static.git
max_upload_size
id989584
size32,903
Sam Demin (nthend)

documentation

https://docs.rs/lock-free-static

README

lock-free-static

Crates.io Docs.rs Gitlab CI License

Lock-free static variables.

Examples

Static variable

use lock_free_static::lock_free_static;

lock_free_static!{
    static VAR: i32 = 123;
}

fn main() {
    assert!(VAR.init());
    assert_eq!(*VAR.get().unwrap(), 123);
}

Mutable static variable

use lock_free_static::lock_free_static;

lock_free_static!{
    static mut VAR: i32 = 123;
}

fn main() {
    assert!(VAR.init());

    let mut guard = VAR.lock().unwrap();
    assert_eq!(*guard, 123);
    *guard = 321;
    drop(guard);

    assert_eq!(*VAR.lock().unwrap(), 321);
}

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Commit count: 13

cargo fmt