macro_rules! ref_extended {
    (&$name: ident) => { ... };
    (&mut $name: ident) => { ... };
}
Expand description

Safely extends lifetime of reference as long as lifetime of it’s value

Usage

let a = 0_u32;
 
ref_extended(&a); // Now a is &'static u32 because lifetime of a's value is 'static

let mut b = 0_u32;
 
ref_extended(&mut b); // Now b is &'static mut u32 because lifetime of b's value is 'static