H
fn foo(a: &i32) -> &i32 { a }это
impl for<'a> Fn(&'a i32) -> &'a i32
Size: a a a
EG
fn foo(a: &i32) -> &i32 { a }impl for<'a> Fn(&'a i32) -> &'a i32
EG
EG
for<'id> FnOnce(&'id Foo<'id>), где 'id — инвариантный лайфтаймEG
'idEG
Index<'id>(usize), который гарантировано in boundsEG
'id из другого вектораEG
Index<'id>(usize), то ты можешь быть уверен, что этот индекс ты сам выписал, и безопасно сделлать .get_unchecked()EG
H
H
AN
H
H
EG
TK
EG
make_guard!(a);
make_guard!(b);
a и b типы с разными инвариантными лайфтаймами, причём b живёт дольше, чем a.EG