172 похожих чатов

У меня есть цепь из borrowed объектов, нужно их всех

сложить в одну структуру, чтобы можно было их дропнуть вместе в любой момент, как? 👀
use std::marker::PhantomData;

struct A<'a> { _p: PhantomData<&'a ()> }
struct B<'a> { _p: PhantomData<&'a ()> }
struct C<'a> { _p: PhantomData<&'a ()> }

impl<'a> A<'a> {
fn b(&self) -> B {
B { _p: PhantomData }
}
}

impl<'a> B<'a> {
fn c(&self) -> C {
C { _p: PhantomData }
}
}

struct Leak<'a>
{
a: A<'a>,
b: B<'a>,
c: C<'a>,
}

fn foo() {
let a = A { _p: PhantomData };
let b = a.b();
let c = b.c();

let leak = Leak { a, b, c }; // can't move out of `a` because it is borrowed ...
Box::leak(Box::new(leak));
// Box::leak(Box::new(c));
// Box::leak(Box::new(b));
// Box::leak(Box::new(a));
}

2 ответов

25 просмотров

impl<'a> A<'a> { fn b(&self) -> B<'a> { B { _p: PhantomData } } } укажи 'a лайфтайм у возвращаемых структур

NanzeRT-(0) Автор вопроса
Victor
impl<'a> A<'a> { fn b(&self) -> B<'a> { ...

мне нужна привязка к &'a self

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта