trapper

A simple Rust library for creating transparent newtypes that don't require ownership to be used.

Example

```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)); ```