out-reference 0.2.0

out references
Documentation
  • Coverage
  • 100%
    12 out of 12 items documented1 out of 12 items with examples
  • Links
  • Crates.io
  • Dependencies
  • Versions
  • Owners
  • RustyYato

This crate brings out references to Rust, this crate has no_std support Out reference never read values behind the reference

use out_reference::*;

let mut x = 0;

let mut out_x: Out<'_, u32> = x.out();
out_x.set(10);

assert_eq!(x, 10);

Note that setting a value does not drop the old value, as that would require at least 1 read of the value behind the pointer

So, the code below leaks the vector

use out_reference::*;

let mut x = vec![0, 1, 2];

let mut out_x: Out<'_, Vec<u32>> = x.out();
out_x.set(vec![]);

assert_eq!(x, vec![]);