1个不稳定版本
0.1.0 | 2019年1月23日 |
---|
#12 in #deref-mut
729 每月下载量
在 6 个crate(4 个直接使用)中使用
7KB
98 行
这是一个过程宏,允许你为你的结构体派生 std::ops::Deref
和 std::ops::DerefMut
。此宏只能在至少有一个字段的 结构体 上派生。你可以指定要解引用的字段,使用 #[deref]
,并允许可变解引用,使用 #[deref(mutable)]
。
派生 std::ops::Deref
use std::collections::HashMap;
use derefable::Derefable;
#[derive(Default, Derefable)]
struct Map {
#[deref]
inner: HashMap<&'static str, &'static str>
}
fn main() {
let map = Map::default();
assert!(map.is_empty());
}
派生 std::ops::DerefMut
use std::collections::HashMap;
use derefable::Derefable;
#[derive(Default, Derefable)]
struct MutableMap {
#[deref(mutable)]
inner: HashMap<&'static str, &'static str>
}
fn main() {
let mut map = MutableMap::default();
map.insert("Hello", "World");
assert_eq!(map.get("Hello"), Some("World"));
}
依赖
~2MB
~46K SLoC