A simple Rust library for creating transparent newtypes that don't require ownership to be used.
```rust use trapper::{Wrapper, newtype}; newtype!(#[derive(PartialEq, Debug)] type NumberWrapper(i32));
fn foo(r: &i32, m: &mut i32) { let refwrapper: &NumberWrapper = NumberWrapper::wrapref(r); let mutwrapper: &mut NumberWrapper = NumberWrapper::wrapmut(m); }
let mut wrapper = NumberWrapper::wrap(12); *wrapper.unwrap_mut() = 13;
assert_eq!(wrapper, NumberWrapper::wrap(13)); ```