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
189 downloads per month
Used in 2 crates
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