#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

#10 in #deref-mut

Download history 43/week @ 2024-11-17 42/week @ 2024-11-24 28/week @ 2024-12-01 52/week @ 2024-12-08 47/week @ 2024-12-15 7/week @ 2024-12-22 18/week @ 2024-12-29 28/week @ 2025-01-05 194/week @ 2025-01-12 272/week @ 2025-01-19 246/week @ 2025-01-26 383/week @ 2025-02-02 265/week @ 2025-02-09 237/week @ 2025-02-16 215/week @ 2025-02-23 355/week @ 2025-03-02

1,133 downloads per month
Used in in-keys

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