-
-use lightning_invoice::utils::DefaultRouter as nativeDefaultRouterImport;
-pub(crate) type nativeDefaultRouter = nativeDefaultRouterImport<&'static lightning::routing::network_graph::NetworkGraph, crate::lightning::util::logger::Logger>;
-
-/// A [`Router`] implemented using [`find_route`].
-#[must_use]
-#[repr(C)]
-pub struct DefaultRouter {
- /// A pointer to the opaque Rust object.
-
- /// Nearly everywhere, inner must be non-null, however in places where
- /// the Rust equivalent takes an Option, it may be set to null to indicate None.
- pub inner: *mut nativeDefaultRouter,
- /// Indicates that this is the only struct which contains the same pointer.
-
- /// Rust functions which take ownership of an object provided via an argument require
- /// this to be true and invalidate the object pointed to by inner.
- pub is_owned: bool,
-}
-
-impl Drop for DefaultRouter {
- fn drop(&mut self) {
- if self.is_owned && !<*mut nativeDefaultRouter>::is_null(self.inner) {
- let _ = unsafe { Box::from_raw(ObjOps::untweak_ptr(self.inner)) };
- }
- }
-}
-/// Frees any resources used by the DefaultRouter, if is_owned is set and inner is non-NULL.
-#[no_mangle]
-pub extern "C" fn DefaultRouter_free(this_obj: DefaultRouter) { }
-#[allow(unused)]
-/// Used only if an object of this type is returned as a trait impl by a method
-pub(crate) extern "C" fn DefaultRouter_free_void(this_ptr: *mut c_void) {
- unsafe { let _ = Box::from_raw(this_ptr as *mut nativeDefaultRouter); }
-}
-#[allow(unused)]
-impl DefaultRouter {
- pub(crate) fn get_native_ref(&self) -> &'static nativeDefaultRouter {
- unsafe { &*ObjOps::untweak_ptr(self.inner) }
- }
- pub(crate) fn get_native_mut_ref(&self) -> &'static mut nativeDefaultRouter {
- unsafe { &mut *ObjOps::untweak_ptr(self.inner) }
- }
- /// When moving out of the pointer, we have to ensure we aren't a reference, this makes that easy
- pub(crate) fn take_inner(mut self) -> *mut nativeDefaultRouter {
- assert!(self.is_owned);
- let ret = ObjOps::untweak_ptr(self.inner);
- self.inner = core::ptr::null_mut();
- ret
- }
-}
-/// Creates a new router using the given [`NetworkGraph`], a [`Logger`], and a randomness source
-/// `random_seed_bytes`.
-#[must_use]