我嘗試使用FFI編寫一些Rust代碼,它涉及讓C取得一些本地創建的結構的所有權。如何將所有權轉讓給Rust的C代碼?
fn some_function() {
let c = SomeStruct::new();
unsafe {
c_function(&mut c);
}
}
我想c_function
採取局部struct c
的所有權。在C++中,可以通過release
獲得unqiue_ptr
。我想知道Rust是否有類似的東西?
'的std :: unique_ptr'有一個模板參數,'Deleter',默認爲'std :: default_delete'。通過提供一個暴露的Rust函數來完成刪除操作,可能會更方便。或者,您可能可以專門化'std :: default_delete',以便_all_實例'unique_ptr '正確解除分配。 –
Anthony