R
Size: a a a
R
R
{
let foo: &'static mut Foo = Box::leak(Box::new(Foo));
unsafe { Box::from_raw(foo) }
}R
'static ссылка на объект живущий в скоупеp
R
R
&'a T не может жить дольше 'ap
&'a T не может жить дольше 'ap
R
T живет не меньше чем 'aR
R
'aR
fn foo(rr: &'static &'static Foo) {}
fn bar(r: &'static Foo) {
foo(&r); // error - can't borrow `r` for `'static` as its lifetime ends when `bar` scope ends
}R
r это ссылка на статический объектR
R
p
T живет не меньше чем 'aR
R
&foo - процесс заимствованияR
&'a Foo - ссылка, валидная в течении 'a, то есть она не может жить дольше этого.'a соответственноp
&'a Foo - ссылка, валидная в течении 'a, то есть она не может жить дольше этого.'a соответственно