Like some kind of Box
that holds the reference to the value or something? I'd have to check whether the value is still alive or not before reading it, like when a Option
is pattern matched.
A mock example:
struct Whatever {
thing: AliveOrNot<i32>,
}
fn main() {
let mut w = Whatever { thing: Holder::Empty };
w.thing = AliveOrNot::new(100);
match w.thing {
Empty => println!("doesn't exist"),
Full(value) => println!("{}", value),
}
}
The exact case is that I'm using a sdl2 Font
and I want to store instances of that struct in another struct. I don't want to do something like this because the Parent
would have to live exactly as long as the Font
:
struct Font<'a, 'b> {
aa: &'a i32,
bb: &'b i32,
}
struct Parent<'a, 'b, 'c> {
f: &'c Font<'a, 'b>
}
What I want is for the Parent
to work regardless of whether that field is still alive or not.