+impl From<nativeChainMonitor> for crate::util::events::EventsProvider {
+ fn from(obj: nativeChainMonitor) -> Self {
+ let mut rust_obj = ChainMonitor { inner: Box::into_raw(Box::new(obj)), is_owned: true };
+ let mut ret = ChainMonitor_as_EventsProvider(&rust_obj);
+ // We want to free rust_obj when ret gets drop()'d, not rust_obj, so wipe rust_obj's pointer and set ret's free() fn
+ rust_obj.inner = std::ptr::null_mut();
+ ret.free = Some(ChainMonitor_free_void);
+ ret
+ }
+}