reflica
Automatically implements AsRef / AsMut from Deref / DerefMut.
Example
use ;
let mut wrapper = Wrapper ;
let as_ref: &str = wrapper.as_ref;
assert_eq!;
let as_mut: &mut String = wrapper.as_mut;
as_mut.push_str;
assert_eq!;
Automatically implements AsRef / AsMut from Deref / DerefMut.
use std::ops::{Deref, DerefMut};
struct Wrapper {
value: String,
}
#[reflica::reflica]
impl Deref for Wrapper {
type Target = String;
fn deref(&self) -> &Self::Target {
&self.value
}
}
#[reflica::reflica]
impl DerefMut for Wrapper {
fn deref_mut(&mut self) -> &mut Self::Target {
&mut self.value
}
}
let mut wrapper = Wrapper { value: "Hello".to_string() };
let as_ref: &str = wrapper.as_ref();
assert_eq!(as_ref, "Hello");
let as_mut: &mut String = wrapper.as_mut();
as_mut.push_str(", world!");
assert_eq!(*as_mut, "Hello, world!");