externref_polyfill/
lib.rs

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