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 |
#1675 in Procedural macros
45 downloads per month
Used in in-keys
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
~310–760KB
~18K SLoC