Skip to main content

Crate easy_deref

Crate easy_deref 

Source
Expand description

§easy_deref

Derive macros for the Deref and DerefMut traits that support multi-field structs.

§Example

use easy_deref::{Deref, DerefMut};

#[derive(Deref, DerefMut)]
struct Newtype(u32); // Automatically dereferences to `u32`

let nt = Newtype(13);
assert_eq!(*nt, 13);

#[derive(Deref, DerefMut)]
struct<'a, T> ComplexStruct {
    msg: &'a str,
    #[deref] // Dereferences to `data`
    data: Vec<T>,
}

let value = ComplexStruct { msg: "Hello, World!", data: vec![1, 2, 3] };
assert_eq!(*value, vec![1, 2, 3]);

*value = vec![4, 5, 6];
assert_eq!(*value, vec![4, 5, 6]);

§License

Licensed under either:

at your option.

§Why use easy_deref

With many crates for deriving the Deref and DerefMut traits available, you might be wondering, why use easy_deref? easy_deref is the only crate that allows you to select a field to dereference, allowing support for multi-field structs.

Derive Macros§

Deref
DerefMut