Rust · Avançado · Inglês · Técnico
mem forget
Função que consome um valor sem rodar seu destrutor, deixando o recurso sem liberação. É segura, porque vazar memória não viola as garantias do Rust.
Onde usar
Usada em FFI, ao entregar a posse de um recurso a código externo. Em outros casos, ManuallyDrop deixa a intenção mais clara.
Em código
use std::mem;
let s = String::from("vaza");
mem::forget(s); // sem drop: memória vaza
// isso é seguro: vazar não é UBExemplos
We mem forget the handle after passing it to C.
Fazemos mem forget do handle depois de passá-lo para o C.
Forgetting a value is safe, but it leaks.
Esquecer um valor é seguro, mas vaza.
Cuidado
Não confunda com drop: forget impede a liberação, e drop a executa na hora.
Sinônimos
mem::forget
Antônimos
drop