//! Error types live here.
-use std::str::FromStr;
-use std::ffi::c_void;
+use alloc::str::FromStr;
+use core::ffi::c_void;
+use core::convert::Infallible;
use bitcoin::hashes::Hash;
use crate::c_types::*;
+#[cfg(feature="no-std")]
+use alloc::{vec::Vec, boxed::Box};
/// Indicates an error on the client's part (usually some variant of attempting to use too-low or
/// too-high values)
nativeAPIError::IncompatibleShutdownScript {ref script, } => {
let mut script_nonref = (*script).clone();
APIError::IncompatibleShutdownScript {
- script: crate::lightning::ln::script::ShutdownScript { inner: Box::into_raw(Box::new(script_nonref)), is_owned: true },
+ script: crate::lightning::ln::script::ShutdownScript { inner: ObjOps::heap_alloc(script_nonref), is_owned: true },
}
},
}
nativeAPIError::MonitorUpdateFailed => APIError::MonitorUpdateFailed,
nativeAPIError::IncompatibleShutdownScript {mut script, } => {
APIError::IncompatibleShutdownScript {
- script: crate::lightning::ln::script::ShutdownScript { inner: Box::into_raw(Box::new(script)), is_owned: true },
+ script: crate::lightning::ln::script::ShutdownScript { inner: ObjOps::heap_alloc(script), is_owned: true },
}
},
}