1 个稳定版本
1.0.0 | 2019年8月1日 |
---|
#62 在 #所有权
22 每月下载次数
在 2 个crate中(通过 trapper)使用
5KB
65 代码行数
trapper
一个简单的Rust库,用于创建无需所有权即可使用的透明newtype。
示例
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));
依赖
~2MB
~45K SLoC