[−][src]Crate derefable
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
ⓘThis example is not tested
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
ⓘThis example is not tested
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")); }
Derive Macros
Derefable |