#newtype #wrapper #don-t #ownership #require #transparent #i32

无std trapper

一个用于创建无需内部值所有权的newtypes的库

2个稳定版本

2.0.0 2019年8月1日
1.0.0 2019年7月30日

#312 in 无标准库


用于trapper_macro

MIT 许可协议

7KB

trapper

一个简单的Rust库,用于创建无需所有权的透明newtypes。

示例

use trapper::{Wrapper, newtype};
newtype!(#[derive(PartialEq, Debug)] type NumberWrapper(i32));

fn foo(r: &i32, m: &mut i32) {
    let ref_wrapper: &NumberWrapper = NumberWrapper::wrap_ref(r);
    let mut_wrapper: &mut NumberWrapper = NumberWrapper::wrap_mut(m);
}

let mut wrapper = NumberWrapper::wrap(12);
*wrapper.unwrap_mut() = 13;

assert_eq!(wrapper, NumberWrapper::wrap(13));

lib.rs:

trapper

Trapper(或透明包装器)允许创建透明的类型包装器,即透明且可以零成本包装和取消包装的类型。

依赖项

~2MB
~46K SLoC