| Crates.io | small_derive_deref |
| lib.rs | small_derive_deref |
| version | 0.1.4 |
| created_at | 2024-08-07 11:05:20.539713+00 |
| updated_at | 2025-03-28 23:07:19.242361+00 |
| description | Derive the Deref and DerefMut traits |
| homepage | |
| repository | https://github.com/Ike-l/derive_deref |
| max_upload_size | |
| id | 1328298 |
| size | 10,922 |
This crate adds #[derive(Deref)] #[derive(DerefMut].
It works for:
#[DerefTarget] / #[DerefMutTarget].#[DerefTarget] and #[DerefMutTarget] must be the sameuse std::ops::DerefMut;
use small_derive_deref::{Deref, DerefMut};
#[derive(Deref, DerefMut)]
struct WrapperStructDifferentTargetsMultipleGenerics<'a, T> {
#[DerefTarget]
field: &'a str,
#[DerefMutTarget]
field_mut: &'a str,
foo: T
}
let mut w = WrapperStructDifferentTargetsMultipleGenerics { field: "not rust", field_mut: "rust", foo: "foo"};
assert_eq!(*w, "not rust");
*w = "rUst";
assert_eq!(*w.deref_mut(), "rUst");
#[derive(Deref, DerefMut)]
struct WrapperTuple(i32, i32);
let mut w = WrapperTuple(1, 3);
*w *= 2;
assert_eq!(*w, 2);
assert_eq!(*w.deref_mut(), 2);
MIT or Apache-2.0