X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=lightning-c-bindings%2Fsrc%2Frouting%2Frouter.rs;h=d3cd22f5ffaa327e053eb087ad206e3a6b3c3e87;hb=30bf801696ed9305c20510f2983a66bec7a6b1ed;hp=47f89af4576bcfd0bb3d54080561cdd9c1c50150;hpb=764d8a6a61a58e1c86e5eaf74706f522fc389020;p=rust-lightning diff --git a/lightning-c-bindings/src/routing/router.rs b/lightning-c-bindings/src/routing/router.rs index 47f89af4..d3cd22f5 100644 --- a/lightning-c-bindings/src/routing/router.rs +++ b/lightning-c-bindings/src/routing/router.rs @@ -222,20 +222,18 @@ pub extern "C" fn Route_new(mut paths_arg: crate::c_types::derived::CVec_CVec_Ro })), is_owned: true } } #[no_mangle] -pub extern "C" fn Route_write(obj: *const Route) -> crate::c_types::derived::CVec_u8Z { - crate::c_types::serialize_obj(unsafe { &(*(*obj).inner) }) +pub extern "C" fn Route_write(obj: &Route) -> crate::c_types::derived::CVec_u8Z { + crate::c_types::serialize_obj(unsafe { &*unsafe { &*obj }.inner }) } #[no_mangle] pub(crate) extern "C" fn Route_write_void(obj: *const c_void) -> crate::c_types::derived::CVec_u8Z { crate::c_types::serialize_obj(unsafe { &*(obj as *const nativeRoute) }) } #[no_mangle] -pub extern "C" fn Route_read(ser: crate::c_types::u8slice) -> Route { - if let Ok(res) = crate::c_types::deserialize_obj(ser) { - Route { inner: Box::into_raw(Box::new(res)), is_owned: true } - } else { - Route { inner: std::ptr::null_mut(), is_owned: true } - } +pub extern "C" fn Route_read(ser: crate::c_types::u8slice) -> crate::c_types::derived::CResult_RouteDecodeErrorZ { + let res = crate::c_types::deserialize_obj(ser); + let mut local_res = match res { Ok(mut o) => crate::c_types::CResultTempl::ok( { crate::routing::router::Route { inner: Box::into_raw(Box::new(o)), is_owned: true } }), Err(mut e) => crate::c_types::CResultTempl::err( { crate::ln::msgs::DecodeError { inner: Box::into_raw(Box::new(e)), is_owned: true } }) }; + local_res } use lightning::routing::router::RouteHint as nativeRouteHintImport;