static_leak

Build Status codecov badge License: MIT License: Apache 2.0

This crate extends Mutexes and RwLocks 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.

```rust lazy_static! { static ref VAR: RwLock = 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