1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
pub struct ExternRef {
pub value: i64,
}
extern "C" {
fn externref_drop(extern_ref: i64);
}
impl From<i64> for ExternRef {
fn from(value: i64) -> Self {
ExternRef { value }
}
}
impl Into<i64> for &ExternRef {
fn into(self) -> i64 {
self.value
}
}
impl Drop for ExternRef {
fn drop(&mut self) {
unsafe {
externref_drop(self.value);
}
}
}