reflica 0.1.0

Automatically implement AsRef / AsMut from Deref / DerefMut implementations
Documentation
  • Coverage
  • 100%
    2 out of 2 items documented1 out of 2 items with examples
  • Size
  • Source code size: 11.31 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 275.42 kB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 5s Average build duration of successful builds.
  • all releases: 5s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • kimhappy/reflica
    0 0 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • kimhappy

reflica

Automatically implements AsRef / AsMut from Deref / DerefMut.

crates.io docs.rs License

Example

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!");