const REFCELL_REF_INTO_REF: ();
Expand description
ⓘ
use core::cell::{Ref, RefCell};
let refcell = RefCell::new([0u8, 1, 2, 3]);
let core_ref = refcell.borrow();
let core_ref = Ref::map(core_ref, |bytes| &bytes[..]);
// `zc_ref` now stores `core_ref` internally.
let zc_ref = zerocopy::Ref::<_, u32>::new(core_ref).unwrap();
// This causes `core_ref` to get dropped and synthesizes a Rust
// reference to the memory `core_ref` was pointing at.
let rust_ref = zc_ref.into_ref();
// UB!!! This mutates `rust_ref`'s referent while it's alive.
*refcell.borrow_mut() = [0, 0, 0, 0];
println!("{}", rust_ref);