Crates.io | ts_static |
lib.rs | ts_static |
version | 0.3.0 |
source | src |
created_at | 2020-09-17 06:08:25.994375 |
updated_at | 2020-09-24 21:45:40.729763 |
description | Wrapper macro for lazy static and a struct to aid in accessing a static in a thread safe way. |
homepage | https://github.com/Sibz/ts_static |
repository | https://github.com/Sibz/ts_static |
max_upload_size | |
id | 289688 |
size | 49,943 |
Wrapper macro for lazy_static!
and a struct to aid in accessing a static in a thread safe way.
Can be used in global scope or in module scope.
Requires lazy_static imported to the scope where ts_static is used
ts_static!(STATIC_NAME, Type);
ts_static!(MY_STATIC_NAME, i32);
Static is set to a ThreadSafeStruct<T>
.
To set the value use the set
member function.
To work with the value use the with
member function.
You can access the mutex field directly value
but the helpers should
be suffice for most needs
MY_STATIC_NAME.set(Some(1337));
MY_STATIC_NAME.with(|value| {
*value += 1
}).expect(".with failed");
MY_STATIC_NAME.set(None);
There are two helper functions if your T
is a HashMap
:
insert(key, value)
- Adds or updates a valueremove(key)
- Gets and removes a valueThese function much like the HashMap type but are guaranteed to be thread safe.