1 unstable release
0.1.0 | Nov 10, 2022 |
---|
#2780 in Rust patterns
9KB
120 lines
static_leak
This crate extends Mutex
es and RwLock
s wrapping references with static lifetimes to leak these raw underlying references.
This can be useful to safely obtain a static mutable reference without using any unsafe code when interacting with a legacy C project via FFI.
lazy_static! {
static ref VAR: RwLock<i8> = RwLock::new(42);
}
fn bar(_: &'static mut i8) {}
fn main() {
bar(RwLockWriteGuard::leak(VAR.write().unwrap()));
}
This crate supports implementations from the following crates, which are activated through the respective feature flags:
- std
- async-std
- spin
Dependencies
~0–9MB
~90K SLoC