let mut rust_obj = InvoicePayer { inner: ObjOps::heap_alloc(obj), is_owned: true };
let mut ret = InvoicePayer_as_EventHandler(&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
let mut rust_obj = InvoicePayer { inner: ObjOps::heap_alloc(obj), is_owned: true };
let mut ret = InvoicePayer_as_EventHandler(&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