#deref #deref-mut #field #deriving #traits #derived #reference

macro derived-deref

Crate for deriving the Deref and DerefMut traits

5 releases (stable)

2.1.0 Aug 15, 2023
2.0.1 Aug 15, 2023
1.0.0 Jul 7, 2023
0.1.0 Jul 7, 2023

#9 in #deref-mut

Download history 49/week @ 2024-07-22 56/week @ 2024-07-29 14/week @ 2024-08-05 61/week @ 2024-08-12 100/week @ 2024-08-19 70/week @ 2024-08-26 43/week @ 2024-09-02 33/week @ 2024-09-09 14/week @ 2024-09-16 78/week @ 2024-09-23 11/week @ 2024-09-30 30/week @ 2024-10-07 32/week @ 2024-10-14 18/week @ 2024-10-21 55/week @ 2024-10-28 81/week @ 2024-11-04

189 downloads per month
Used in 2 crates

MIT/Apache

10KB
112 lines

derived-deref

A crate for deriving the Deref and DerefMut traits from the standard library onto structs with at least one field. Fields with references are passed directly.

Examples

use derived_deref::{Deref, DerefMut};

#[derive(Deref, DerefMut)]
struct StringWithCount {
    // Annotation of `#[target]` is required when there are two+ fields.
    #[target] inner: String,
    count: usize,
}


// When there is only one field, annotation is optional instead.

#[derive(Deref, DerefMut)]
struct StringWrapper(String);

#[derive(Deref, DerefMut)]
struct CountWrapper(#[target] usize);

lib.rs:

A crate for deriving the Deref and DerefMut traits from the standard library onto structs with at least one field. Fields with references are passed directly.

Examples

use derived_deref::{Deref, DerefMut};

#[derive(Deref, DerefMut)]
struct StringWithCount {
    // Annotation of `#[target]` is required when there are two+ fields.
    #[target] inner: String,
    count: usize,
}


// When there is only one field, annotation is optional instead.

#[derive(Deref, DerefMut)]
struct StringWrapper(String);

#[derive(Deref, DerefMut)]
struct CountWrapper(#[target] usize);

Dependencies

~225–670KB
~16K SLoC