Expand description
A procedural macro that allows you to derive std::ops::Deref
and std::ops::DerefMut
for
your structs. This macro can only be derived on structs with atleast one field. You can
specify which field you want to be deref’ed to with the #[deref]
and allow mutable
dereferencing with #[deref(mutable)]
.
§Deriving 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());
}
§Deriving 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"));
}