Ich versuche, etwas Rust-Code mit FFI zu schreiben, das beinhaltet, dass C den Besitz einer lokal erstellten Struktur übernimmt.Wie übertragen Sie das Eigentum an C-Code von Rust?
fn some_function() {
let c = SomeStruct::new();
unsafe {
c_function(&mut c);
}
}
Ich mag die c_function
das Eigentum an den lokalen struct c
zu nehmen. In C++ konnte durch release
für unqiue_ptr
erreicht werden. Ich frage mich, ob es in Rust etwas Ähnliches gibt?
'std :: unique_ptr' einen Template-Parameter hat,' Deleter', Standard ist 'std :: default_delete'. Es könnte zweckdienlich sein, dies zu nutzen, indem eine freiliegende Rost-Funktion bereitgestellt wird, um stattdessen die Löschung durchzuführen. Alternativ können Sie 'std :: default_delete' spezialisieren, so dass alle _instanzen' unique_ptr 'korrekt freigegeben werden. –
Anthony