поглощять значение?
std::mem::forget(self); <<<
let data = а тут получить уже данные из этого self.
пример
fn test(mut self) -> C {
| -------- move occurs because `self` has type `A`, which does not implement the `Copy` trait
7 | std::mem::forget(self);
| ---- value moved here
8 | let c = self.0;
| ^^^^^^ value used here after move
на std::mem::forget(&self); не желает работать
https://doc.rust-lang.org/core/mem/struct.ManuallyDrop.html
Ну стурктуру на стеке форгетить плохая идея. А если бокс, то можно взять указатель на него, зафоргетить значение, и вернуть указатель
ManuallyDrop + ptr::read()
Аккуратно через ансейф достаёшь поля и обрабатываешь их.
Обсуждают сегодня