From 1eaf50a3d9f777b462ff1817678473567a00eb75 Mon Sep 17 00:00:00 2001 From: Matt Corallo Date: Wed, 5 Jan 2022 06:43:58 +0000 Subject: [PATCH] Update auto-generated bindings --- lightning-c-bindings/src/c_types/derived.rs | 1051 +++++++++-------- lightning-c-bindings/src/lib.rs | 4 + .../src/lightning/chain/chaininterface.rs | 10 +- .../src/lightning/chain/chainmonitor.rs | 32 +- .../src/lightning/chain/channelmonitor.rs | 16 +- .../src/lightning/chain/keysinterface.rs | 38 +- .../src/lightning/chain/mod.rs | 42 +- .../src/lightning/chain/transaction.rs | 16 +- .../src/lightning/ln/chan_utils.rs | 58 +- .../src/lightning/ln/channelmanager.rs | 52 +- .../src/lightning/ln/features.rs | 32 +- lightning-c-bindings/src/lightning/ln/mod.rs | 24 +- lightning-c-bindings/src/lightning/ln/msgs.rs | 170 +-- .../src/lightning/ln/peer_handler.rs | 46 +- .../src/lightning/ln/script.rs | 14 +- lightning-c-bindings/src/lightning/ln/wire.rs | 20 +- lightning-c-bindings/src/lightning/mod.rs | 12 +- .../src/lightning/routing/mod.rs | 6 +- .../src/lightning/routing/network_graph.rs | 72 +- .../src/lightning/routing/router.rs | 66 +- .../src/lightning/routing/scoring.rs | 30 +- .../src/lightning/util/config.rs | 22 +- .../src/lightning/util/errors.rs | 6 +- .../src/lightning/util/events.rs | 18 +- .../src/lightning/util/logger.rs | 18 +- .../src/lightning/util/message_signing.rs | 6 +- .../src/lightning/util/mod.rs | 84 +- .../src/lightning/util/ser.rs | 6 +- .../src/lightning_background_processor.rs | 10 +- .../src/lightning_invoice/constants.rs | 6 +- .../src/lightning_invoice/mod.rs | 144 +-- .../src/lightning_invoice/payment.rs | 24 +- .../src/lightning_invoice/utils.rs | 14 +- .../src/lightning_persister.rs | 16 +- 34 files changed, 1160 insertions(+), 1025 deletions(-) diff --git a/lightning-c-bindings/src/c_types/derived.rs b/lightning-c-bindings/src/c_types/derived.rs index d2fd004..c8b0a5b 100644 --- a/lightning-c-bindings/src/c_types/derived.rs +++ b/lightning-c-bindings/src/c_types/derived.rs @@ -1,3 +1,12 @@ + +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}; + #[repr(C)] /// The contents of CResult_SecretKeyErrorZ pub union CResult_SecretKeyErrorZPtr { @@ -64,11 +73,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_SecretKeyErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_SecretKeyErrorZPtr { err } }; Self { @@ -143,11 +152,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_PublicKeyErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_PublicKeyErrorZPtr { err } }; Self { @@ -239,11 +248,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_TxCreationKeysDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_TxCreationKeysDecodeErrorZPtr { err } }; Self { @@ -335,11 +344,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_ChannelPublicKeysDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_ChannelPublicKeysDecodeErrorZPtr { err } }; Self { @@ -431,11 +440,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_TxCreationKeysErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_TxCreationKeysErrorZPtr { err } }; Self { @@ -564,11 +573,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_HTLCOutputInCommitmentDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_HTLCOutputInCommitmentDecodeErrorZPtr { err } }; Self { @@ -689,11 +698,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_CounterpartyChannelTransactionParametersDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_CounterpartyChannelTransactionParametersDecodeErrorZPtr { err } }; Self { @@ -785,11 +794,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_ChannelTransactionParametersDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_ChannelTransactionParametersDecodeErrorZPtr { err } }; Self { @@ -828,13 +837,13 @@ pub struct CVec_SignatureZ { impl CVec_SignatureZ { #[allow(unused)] pub(crate) fn into_rust(&mut self) -> Vec { if self.datalen == 0 { return Vec::new(); } - let ret = unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); - self.data = std::ptr::null_mut(); + let ret = unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); + self.data = core::ptr::null_mut(); self.datalen = 0; ret } #[allow(unused)] pub(crate) fn as_slice(&self) -> &[crate::c_types::Signature] { - unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) } + unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) } } } impl From> for CVec_SignatureZ { @@ -850,14 +859,14 @@ pub extern "C" fn CVec_SignatureZ_free(_res: CVec_SignatureZ) { } impl Drop for CVec_SignatureZ { fn drop(&mut self) { if self.datalen == 0 { return; } - unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }; + unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }; } } impl Clone for CVec_SignatureZ { fn clone(&self) -> Self { let mut res = Vec::new(); if self.datalen == 0 { return Self::from(res); } - res.extend_from_slice(unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) }); + res.extend_from_slice(unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) }); Self::from(res) } } @@ -927,11 +936,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_HolderCommitmentTransactionDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_HolderCommitmentTransactionDecodeErrorZPtr { err } }; Self { @@ -1023,11 +1032,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_BuiltCommitmentTransactionDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_BuiltCommitmentTransactionDecodeErrorZPtr { err } }; Self { @@ -1060,7 +1069,7 @@ pub union CResult_TrustedClosingTransactionNoneZPtr { /// Reading from this pointer when `result_ok` is not set is undefined. pub result: *mut crate::lightning::ln::chan_utils::TrustedClosingTransaction, /// Note that this value is always NULL, as there are no contents in the Err variant - pub err: *mut std::ffi::c_void, + pub err: *mut core::ffi::c_void, } #[repr(C)] /// A CResult_TrustedClosingTransactionNoneZ represents the result of a fallible operation, @@ -1088,7 +1097,7 @@ pub extern "C" fn CResult_TrustedClosingTransactionNoneZ_ok(o: crate::lightning: pub extern "C" fn CResult_TrustedClosingTransactionNoneZ_err() -> CResult_TrustedClosingTransactionNoneZ { CResult_TrustedClosingTransactionNoneZ { contents: CResult_TrustedClosingTransactionNoneZPtr { - err: std::ptr::null_mut(), + err: core::ptr::null_mut(), }, result_ok: false, } @@ -1115,12 +1124,12 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_TrustedClosingTransactionNoneZPtr { result } } else { let _ = unsafe { Box::from_raw(o.contents.err) }; - o.contents.err = std::ptr::null_mut(); - CResult_TrustedClosingTransactionNoneZPtr { err: std::ptr::null_mut() } + o.contents.err = core::ptr::null_mut(); + CResult_TrustedClosingTransactionNoneZPtr { err: core::ptr::null_mut() } }; Self { contents, @@ -1194,11 +1203,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_CommitmentTransactionDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_CommitmentTransactionDecodeErrorZPtr { err } }; Self { @@ -1231,7 +1240,7 @@ pub union CResult_TrustedCommitmentTransactionNoneZPtr { /// Reading from this pointer when `result_ok` is not set is undefined. pub result: *mut crate::lightning::ln::chan_utils::TrustedCommitmentTransaction, /// Note that this value is always NULL, as there are no contents in the Err variant - pub err: *mut std::ffi::c_void, + pub err: *mut core::ffi::c_void, } #[repr(C)] /// A CResult_TrustedCommitmentTransactionNoneZ represents the result of a fallible operation, @@ -1259,7 +1268,7 @@ pub extern "C" fn CResult_TrustedCommitmentTransactionNoneZ_ok(o: crate::lightni pub extern "C" fn CResult_TrustedCommitmentTransactionNoneZ_err() -> CResult_TrustedCommitmentTransactionNoneZ { CResult_TrustedCommitmentTransactionNoneZ { contents: CResult_TrustedCommitmentTransactionNoneZPtr { - err: std::ptr::null_mut(), + err: core::ptr::null_mut(), }, result_ok: false, } @@ -1286,12 +1295,12 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_TrustedCommitmentTransactionNoneZPtr { result } } else { let _ = unsafe { Box::from_raw(o.contents.err) }; - o.contents.err = std::ptr::null_mut(); - CResult_TrustedCommitmentTransactionNoneZPtr { err: std::ptr::null_mut() } + o.contents.err = core::ptr::null_mut(); + CResult_TrustedCommitmentTransactionNoneZPtr { err: core::ptr::null_mut() } }; Self { contents, @@ -1306,7 +1315,7 @@ pub union CResult_CVec_SignatureZNoneZPtr { /// Reading from this pointer when `result_ok` is not set is undefined. pub result: *mut crate::c_types::derived::CVec_SignatureZ, /// Note that this value is always NULL, as there are no contents in the Err variant - pub err: *mut std::ffi::c_void, + pub err: *mut core::ffi::c_void, } #[repr(C)] /// A CResult_CVec_SignatureZNoneZ represents the result of a fallible operation, @@ -1334,7 +1343,7 @@ pub extern "C" fn CResult_CVec_SignatureZNoneZ_ok(o: crate::c_types::derived::CV pub extern "C" fn CResult_CVec_SignatureZNoneZ_err() -> CResult_CVec_SignatureZNoneZ { CResult_CVec_SignatureZNoneZ { contents: CResult_CVec_SignatureZNoneZPtr { - err: std::ptr::null_mut(), + err: core::ptr::null_mut(), }, result_ok: false, } @@ -1361,12 +1370,12 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_CVec_SignatureZNoneZPtr { result } } else { let _ = unsafe { Box::from_raw(o.contents.err) }; - o.contents.err = std::ptr::null_mut(); - CResult_CVec_SignatureZNoneZPtr { err: std::ptr::null_mut() } + o.contents.err = core::ptr::null_mut(); + CResult_CVec_SignatureZNoneZPtr { err: core::ptr::null_mut() } }; Self { contents, @@ -1382,7 +1391,7 @@ impl Clone for CResult_CVec_SignatureZNoneZ { } } } else { Self { result_ok: false, contents: CResult_CVec_SignatureZNoneZPtr { - err: std::ptr::null_mut() + err: core::ptr::null_mut() } } } } @@ -1457,11 +1466,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_ShutdownScriptDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_ShutdownScriptDecodeErrorZPtr { err } }; Self { @@ -1553,11 +1562,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_ShutdownScriptInvalidShutdownScriptZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_ShutdownScriptInvalidShutdownScriptZPtr { err } }; Self { @@ -1587,7 +1596,7 @@ pub extern "C" fn CResult_ShutdownScriptInvalidShutdownScriptZ_clone(orig: &CRes /// The contents of CResult_NoneErrorZ pub union CResult_NoneErrorZPtr { /// Note that this value is always NULL, as there are no contents in the OK variant - pub result: *mut std::ffi::c_void, + pub result: *mut core::ffi::c_void, /// A pointer to the contents in the error state. /// Reading from this pointer when `result_ok` is set is undefined. pub err: *mut crate::c_types::IOError, @@ -1608,7 +1617,7 @@ pub struct CResult_NoneErrorZ { pub extern "C" fn CResult_NoneErrorZ_ok() -> CResult_NoneErrorZ { CResult_NoneErrorZ { contents: CResult_NoneErrorZPtr { - result: std::ptr::null_mut(), + result: core::ptr::null_mut(), }, result_ok: true, } @@ -1645,11 +1654,11 @@ impl From> for CResult fn from(mut o: crate::c_types::CResultTempl<(), crate::c_types::IOError>) -> Self { let contents = if o.result_ok { let _ = unsafe { Box::from_raw(o.contents.result) }; - o.contents.result = std::ptr::null_mut(); - CResult_NoneErrorZPtr { result: std::ptr::null_mut() } + o.contents.result = core::ptr::null_mut(); + CResult_NoneErrorZPtr { result: core::ptr::null_mut() } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_NoneErrorZPtr { err } }; Self { @@ -1662,7 +1671,7 @@ impl Clone for CResult_NoneErrorZ { fn clone(&self) -> Self { if self.result_ok { Self { result_ok: true, contents: CResult_NoneErrorZPtr { - result: std::ptr::null_mut() + result: core::ptr::null_mut() } } } else { Self { result_ok: false, contents: CResult_NoneErrorZPtr { @@ -1741,11 +1750,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_RouteHopDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_RouteHopDecodeErrorZPtr { err } }; Self { @@ -1784,13 +1793,13 @@ pub struct CVec_RouteHopZ { impl CVec_RouteHopZ { #[allow(unused)] pub(crate) fn into_rust(&mut self) -> Vec { if self.datalen == 0 { return Vec::new(); } - let ret = unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); - self.data = std::ptr::null_mut(); + let ret = unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); + self.data = core::ptr::null_mut(); self.datalen = 0; ret } #[allow(unused)] pub(crate) fn as_slice(&self) -> &[crate::lightning::routing::router::RouteHop] { - unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) } + unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) } } } impl From> for CVec_RouteHopZ { @@ -1806,14 +1815,14 @@ pub extern "C" fn CVec_RouteHopZ_free(_res: CVec_RouteHopZ) { } impl Drop for CVec_RouteHopZ { fn drop(&mut self) { if self.datalen == 0 { return; } - unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }; + unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }; } } impl Clone for CVec_RouteHopZ { fn clone(&self) -> Self { let mut res = Vec::new(); if self.datalen == 0 { return Self::from(res); } - res.extend_from_slice(unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) }); + res.extend_from_slice(unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) }); Self::from(res) } } @@ -1830,13 +1839,13 @@ pub struct CVec_CVec_RouteHopZZ { impl CVec_CVec_RouteHopZZ { #[allow(unused)] pub(crate) fn into_rust(&mut self) -> Vec { if self.datalen == 0 { return Vec::new(); } - let ret = unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); - self.data = std::ptr::null_mut(); + let ret = unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); + self.data = core::ptr::null_mut(); self.datalen = 0; ret } #[allow(unused)] pub(crate) fn as_slice(&self) -> &[crate::c_types::derived::CVec_RouteHopZ] { - unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) } + unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) } } } impl From> for CVec_CVec_RouteHopZZ { @@ -1852,14 +1861,14 @@ pub extern "C" fn CVec_CVec_RouteHopZZ_free(_res: CVec_CVec_RouteHopZZ) { } impl Drop for CVec_CVec_RouteHopZZ { fn drop(&mut self) { if self.datalen == 0 { return; } - unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }; + unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }; } } impl Clone for CVec_CVec_RouteHopZZ { fn clone(&self) -> Self { let mut res = Vec::new(); if self.datalen == 0 { return Self::from(res); } - res.extend_from_slice(unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) }); + res.extend_from_slice(unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) }); Self::from(res) } } @@ -1929,11 +1938,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_RouteDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_RouteDecodeErrorZPtr { err } }; Self { @@ -2025,11 +2034,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_RouteParametersDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_RouteParametersDecodeErrorZPtr { err } }; Self { @@ -2068,13 +2077,13 @@ pub struct CVec_RouteHintZ { impl CVec_RouteHintZ { #[allow(unused)] pub(crate) fn into_rust(&mut self) -> Vec { if self.datalen == 0 { return Vec::new(); } - let ret = unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); - self.data = std::ptr::null_mut(); + let ret = unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); + self.data = core::ptr::null_mut(); self.datalen = 0; ret } #[allow(unused)] pub(crate) fn as_slice(&self) -> &[crate::lightning::routing::router::RouteHint] { - unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) } + unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) } } } impl From> for CVec_RouteHintZ { @@ -2090,14 +2099,14 @@ pub extern "C" fn CVec_RouteHintZ_free(_res: CVec_RouteHintZ) { } impl Drop for CVec_RouteHintZ { fn drop(&mut self) { if self.datalen == 0 { return; } - unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }; + unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }; } } impl Clone for CVec_RouteHintZ { fn clone(&self) -> Self { let mut res = Vec::new(); if self.datalen == 0 { return Self::from(res); } - res.extend_from_slice(unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) }); + res.extend_from_slice(unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) }); Self::from(res) } } @@ -2204,11 +2213,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_PayeeDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_PayeeDecodeErrorZPtr { err } }; Self { @@ -2247,13 +2256,13 @@ pub struct CVec_RouteHintHopZ { impl CVec_RouteHintHopZ { #[allow(unused)] pub(crate) fn into_rust(&mut self) -> Vec { if self.datalen == 0 { return Vec::new(); } - let ret = unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); - self.data = std::ptr::null_mut(); + let ret = unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); + self.data = core::ptr::null_mut(); self.datalen = 0; ret } #[allow(unused)] pub(crate) fn as_slice(&self) -> &[crate::lightning::routing::router::RouteHintHop] { - unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) } + unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) } } } impl From> for CVec_RouteHintHopZ { @@ -2269,14 +2278,14 @@ pub extern "C" fn CVec_RouteHintHopZ_free(_res: CVec_RouteHintHopZ) { } impl Drop for CVec_RouteHintHopZ { fn drop(&mut self) { if self.datalen == 0 { return; } - unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }; + unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }; } } impl Clone for CVec_RouteHintHopZ { fn clone(&self) -> Self { let mut res = Vec::new(); if self.datalen == 0 { return Self::from(res); } - res.extend_from_slice(unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) }); + res.extend_from_slice(unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) }); Self::from(res) } } @@ -2346,11 +2355,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_RouteHintDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_RouteHintDecodeErrorZPtr { err } }; Self { @@ -2442,11 +2451,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_RouteHintHopDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_RouteHintHopDecodeErrorZPtr { err } }; Self { @@ -2485,13 +2494,13 @@ pub struct CVec_ChannelDetailsZ { impl CVec_ChannelDetailsZ { #[allow(unused)] pub(crate) fn into_rust(&mut self) -> Vec { if self.datalen == 0 { return Vec::new(); } - let ret = unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); - self.data = std::ptr::null_mut(); + let ret = unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); + self.data = core::ptr::null_mut(); self.datalen = 0; ret } #[allow(unused)] pub(crate) fn as_slice(&self) -> &[crate::lightning::ln::channelmanager::ChannelDetails] { - unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) } + unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) } } } impl From> for CVec_ChannelDetailsZ { @@ -2507,14 +2516,14 @@ pub extern "C" fn CVec_ChannelDetailsZ_free(_res: CVec_ChannelDetailsZ) { } impl Drop for CVec_ChannelDetailsZ { fn drop(&mut self) { if self.datalen == 0 { return; } - unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }; + unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }; } } impl Clone for CVec_ChannelDetailsZ { fn clone(&self) -> Self { let mut res = Vec::new(); if self.datalen == 0 { return Self::from(res); } - res.extend_from_slice(unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) }); + res.extend_from_slice(unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) }); Self::from(res) } } @@ -2584,11 +2593,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_RouteLightningErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_RouteLightningErrorZPtr { err } }; Self { @@ -2680,11 +2689,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_TxOutAccessErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_TxOutAccessErrorZPtr { err } }; Self { @@ -2765,13 +2774,13 @@ pub struct CVec_C2Tuple_usizeTransactionZZ { impl CVec_C2Tuple_usizeTransactionZZ { #[allow(unused)] pub(crate) fn into_rust(&mut self) -> Vec { if self.datalen == 0 { return Vec::new(); } - let ret = unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); - self.data = std::ptr::null_mut(); + let ret = unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); + self.data = core::ptr::null_mut(); self.datalen = 0; ret } #[allow(unused)] pub(crate) fn as_slice(&self) -> &[crate::c_types::derived::C2Tuple_usizeTransactionZ] { - unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) } + unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) } } } impl From> for CVec_C2Tuple_usizeTransactionZZ { @@ -2787,14 +2796,14 @@ pub extern "C" fn CVec_C2Tuple_usizeTransactionZZ_free(_res: CVec_C2Tuple_usizeT impl Drop for CVec_C2Tuple_usizeTransactionZZ { fn drop(&mut self) { if self.datalen == 0 { return; } - unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }; + unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }; } } impl Clone for CVec_C2Tuple_usizeTransactionZZ { fn clone(&self) -> Self { let mut res = Vec::new(); if self.datalen == 0 { return Self::from(res); } - res.extend_from_slice(unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) }); + res.extend_from_slice(unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) }); Self::from(res) } } @@ -2811,13 +2820,13 @@ pub struct CVec_TxidZ { impl CVec_TxidZ { #[allow(unused)] pub(crate) fn into_rust(&mut self) -> Vec { if self.datalen == 0 { return Vec::new(); } - let ret = unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); - self.data = std::ptr::null_mut(); + let ret = unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); + self.data = core::ptr::null_mut(); self.datalen = 0; ret } #[allow(unused)] pub(crate) fn as_slice(&self) -> &[crate::c_types::ThirtyTwoBytes] { - unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) } + unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) } } } impl From> for CVec_TxidZ { @@ -2833,14 +2842,14 @@ pub extern "C" fn CVec_TxidZ_free(_res: CVec_TxidZ) { } impl Drop for CVec_TxidZ { fn drop(&mut self) { if self.datalen == 0 { return; } - unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }; + unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }; } } impl Clone for CVec_TxidZ { fn clone(&self) -> Self { let mut res = Vec::new(); if self.datalen == 0 { return Self::from(res); } - res.extend_from_slice(unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) }); + res.extend_from_slice(unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) }); Self::from(res) } } @@ -2848,7 +2857,7 @@ impl Clone for CVec_TxidZ { /// The contents of CResult_NoneChannelMonitorUpdateErrZ pub union CResult_NoneChannelMonitorUpdateErrZPtr { /// Note that this value is always NULL, as there are no contents in the OK variant - pub result: *mut std::ffi::c_void, + pub result: *mut core::ffi::c_void, /// A pointer to the contents in the error state. /// Reading from this pointer when `result_ok` is set is undefined. pub err: *mut crate::lightning::chain::ChannelMonitorUpdateErr, @@ -2869,7 +2878,7 @@ pub struct CResult_NoneChannelMonitorUpdateErrZ { pub extern "C" fn CResult_NoneChannelMonitorUpdateErrZ_ok() -> CResult_NoneChannelMonitorUpdateErrZ { CResult_NoneChannelMonitorUpdateErrZ { contents: CResult_NoneChannelMonitorUpdateErrZPtr { - result: std::ptr::null_mut(), + result: core::ptr::null_mut(), }, result_ok: true, } @@ -2906,11 +2915,11 @@ impl From) -> Self { let contents = if o.result_ok { let _ = unsafe { Box::from_raw(o.contents.result) }; - o.contents.result = std::ptr::null_mut(); - CResult_NoneChannelMonitorUpdateErrZPtr { result: std::ptr::null_mut() } + o.contents.result = core::ptr::null_mut(); + CResult_NoneChannelMonitorUpdateErrZPtr { result: core::ptr::null_mut() } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_NoneChannelMonitorUpdateErrZPtr { err } }; Self { @@ -2923,7 +2932,7 @@ impl Clone for CResult_NoneChannelMonitorUpdateErrZ { fn clone(&self) -> Self { if self.result_ok { Self { result_ok: true, contents: CResult_NoneChannelMonitorUpdateErrZPtr { - result: std::ptr::null_mut() + result: core::ptr::null_mut() } } } else { Self { result_ok: false, contents: CResult_NoneChannelMonitorUpdateErrZPtr { @@ -2949,13 +2958,13 @@ pub struct CVec_MonitorEventZ { impl CVec_MonitorEventZ { #[allow(unused)] pub(crate) fn into_rust(&mut self) -> Vec { if self.datalen == 0 { return Vec::new(); } - let ret = unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); - self.data = std::ptr::null_mut(); + let ret = unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); + self.data = core::ptr::null_mut(); self.datalen = 0; ret } #[allow(unused)] pub(crate) fn as_slice(&self) -> &[crate::lightning::chain::channelmonitor::MonitorEvent] { - unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) } + unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) } } } impl From> for CVec_MonitorEventZ { @@ -2971,14 +2980,14 @@ pub extern "C" fn CVec_MonitorEventZ_free(_res: CVec_MonitorEventZ) { } impl Drop for CVec_MonitorEventZ { fn drop(&mut self) { if self.datalen == 0 { return; } - unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }; + unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }; } } impl Clone for CVec_MonitorEventZ { fn clone(&self) -> Self { let mut res = Vec::new(); if self.datalen == 0 { return Self::from(res); } - res.extend_from_slice(unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) }); + res.extend_from_slice(unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) }); Self::from(res) } } @@ -3122,11 +3131,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_COption_ClosureReasonZDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_COption_ClosureReasonZDecodeErrorZPtr { err } }; Self { @@ -3202,13 +3211,13 @@ pub struct CVec_SpendableOutputDescriptorZ { impl CVec_SpendableOutputDescriptorZ { #[allow(unused)] pub(crate) fn into_rust(&mut self) -> Vec { if self.datalen == 0 { return Vec::new(); } - let ret = unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); - self.data = std::ptr::null_mut(); + let ret = unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); + self.data = core::ptr::null_mut(); self.datalen = 0; ret } #[allow(unused)] pub(crate) fn as_slice(&self) -> &[crate::lightning::chain::keysinterface::SpendableOutputDescriptor] { - unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) } + unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) } } } impl From> for CVec_SpendableOutputDescriptorZ { @@ -3224,14 +3233,14 @@ pub extern "C" fn CVec_SpendableOutputDescriptorZ_free(_res: CVec_SpendableOutpu impl Drop for CVec_SpendableOutputDescriptorZ { fn drop(&mut self) { if self.datalen == 0 { return; } - unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }; + unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }; } } impl Clone for CVec_SpendableOutputDescriptorZ { fn clone(&self) -> Self { let mut res = Vec::new(); if self.datalen == 0 { return Self::from(res); } - res.extend_from_slice(unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) }); + res.extend_from_slice(unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) }); Self::from(res) } } @@ -3338,11 +3347,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_COption_EventZDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_COption_EventZDecodeErrorZPtr { err } }; Self { @@ -3381,13 +3390,13 @@ pub struct CVec_MessageSendEventZ { impl CVec_MessageSendEventZ { #[allow(unused)] pub(crate) fn into_rust(&mut self) -> Vec { if self.datalen == 0 { return Vec::new(); } - let ret = unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); - self.data = std::ptr::null_mut(); + let ret = unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); + self.data = core::ptr::null_mut(); self.datalen = 0; ret } #[allow(unused)] pub(crate) fn as_slice(&self) -> &[crate::lightning::util::events::MessageSendEvent] { - unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) } + unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) } } } impl From> for CVec_MessageSendEventZ { @@ -3403,14 +3412,14 @@ pub extern "C" fn CVec_MessageSendEventZ_free(_res: CVec_MessageSendEventZ) { } impl Drop for CVec_MessageSendEventZ { fn drop(&mut self) { if self.datalen == 0 { return; } - unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }; + unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }; } } impl Clone for CVec_MessageSendEventZ { fn clone(&self) -> Self { let mut res = Vec::new(); if self.datalen == 0 { return Self::from(res); } - res.extend_from_slice(unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) }); + res.extend_from_slice(unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) }); Self::from(res) } } @@ -3480,11 +3489,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_ScoringParametersDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_ScoringParametersDecodeErrorZPtr { err } }; Self { @@ -3559,11 +3568,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_ScorerDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_ScorerDecodeErrorZPtr { err } }; Self { @@ -3638,11 +3647,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_InitFeaturesDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_InitFeaturesDecodeErrorZPtr { err } }; Self { @@ -3717,11 +3726,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_ChannelFeaturesDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_ChannelFeaturesDecodeErrorZPtr { err } }; Self { @@ -3796,11 +3805,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_NodeFeaturesDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_NodeFeaturesDecodeErrorZPtr { err } }; Self { @@ -3875,11 +3884,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_InvoiceFeaturesDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_InvoiceFeaturesDecodeErrorZPtr { err } }; Self { @@ -3954,11 +3963,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_ChannelTypeFeaturesDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_ChannelTypeFeaturesDecodeErrorZPtr { err } }; Self { @@ -4033,11 +4042,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_DelayedPaymentOutputDescriptorDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_DelayedPaymentOutputDescriptorDecodeErrorZPtr { err } }; Self { @@ -4129,11 +4138,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_StaticPaymentOutputDescriptorDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_StaticPaymentOutputDescriptorDecodeErrorZPtr { err } }; Self { @@ -4225,11 +4234,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_SpendableOutputDescriptorDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_SpendableOutputDescriptorDecodeErrorZPtr { err } }; Self { @@ -4259,9 +4268,9 @@ pub extern "C" fn CResult_SpendableOutputDescriptorDecodeErrorZ_clone(orig: &CRe /// The contents of CResult_NoneNoneZ pub union CResult_NoneNoneZPtr { /// Note that this value is always NULL, as there are no contents in the OK variant - pub result: *mut std::ffi::c_void, + pub result: *mut core::ffi::c_void, /// Note that this value is always NULL, as there are no contents in the Err variant - pub err: *mut std::ffi::c_void, + pub err: *mut core::ffi::c_void, } #[repr(C)] /// A CResult_NoneNoneZ represents the result of a fallible operation, @@ -4279,7 +4288,7 @@ pub struct CResult_NoneNoneZ { pub extern "C" fn CResult_NoneNoneZ_ok() -> CResult_NoneNoneZ { CResult_NoneNoneZ { contents: CResult_NoneNoneZPtr { - result: std::ptr::null_mut(), + result: core::ptr::null_mut(), }, result_ok: true, } @@ -4289,7 +4298,7 @@ pub extern "C" fn CResult_NoneNoneZ_ok() -> CResult_NoneNoneZ { pub extern "C" fn CResult_NoneNoneZ_err() -> CResult_NoneNoneZ { CResult_NoneNoneZ { contents: CResult_NoneNoneZPtr { - err: std::ptr::null_mut(), + err: core::ptr::null_mut(), }, result_ok: false, } @@ -4313,12 +4322,12 @@ impl From> for CResult_NoneNoneZ { fn from(mut o: crate::c_types::CResultTempl<(), ()>) -> Self { let contents = if o.result_ok { let _ = unsafe { Box::from_raw(o.contents.result) }; - o.contents.result = std::ptr::null_mut(); - CResult_NoneNoneZPtr { result: std::ptr::null_mut() } + o.contents.result = core::ptr::null_mut(); + CResult_NoneNoneZPtr { result: core::ptr::null_mut() } } else { let _ = unsafe { Box::from_raw(o.contents.err) }; - o.contents.err = std::ptr::null_mut(); - CResult_NoneNoneZPtr { err: std::ptr::null_mut() } + o.contents.err = core::ptr::null_mut(); + CResult_NoneNoneZPtr { err: core::ptr::null_mut() } }; Self { contents, @@ -4330,11 +4339,11 @@ impl Clone for CResult_NoneNoneZ { fn clone(&self) -> Self { if self.result_ok { Self { result_ok: true, contents: CResult_NoneNoneZPtr { - result: std::ptr::null_mut() + result: core::ptr::null_mut() } } } else { Self { result_ok: false, contents: CResult_NoneNoneZPtr { - err: std::ptr::null_mut() + err: core::ptr::null_mut() } } } } @@ -4392,7 +4401,7 @@ pub union CResult_C2Tuple_SignatureCVec_SignatureZZNoneZPtr { /// Reading from this pointer when `result_ok` is not set is undefined. pub result: *mut crate::c_types::derived::C2Tuple_SignatureCVec_SignatureZZ, /// Note that this value is always NULL, as there are no contents in the Err variant - pub err: *mut std::ffi::c_void, + pub err: *mut core::ffi::c_void, } #[repr(C)] /// A CResult_C2Tuple_SignatureCVec_SignatureZZNoneZ represents the result of a fallible operation, @@ -4420,7 +4429,7 @@ pub extern "C" fn CResult_C2Tuple_SignatureCVec_SignatureZZNoneZ_ok(o: crate::c_ pub extern "C" fn CResult_C2Tuple_SignatureCVec_SignatureZZNoneZ_err() -> CResult_C2Tuple_SignatureCVec_SignatureZZNoneZ { CResult_C2Tuple_SignatureCVec_SignatureZZNoneZ { contents: CResult_C2Tuple_SignatureCVec_SignatureZZNoneZPtr { - err: std::ptr::null_mut(), + err: core::ptr::null_mut(), }, result_ok: false, } @@ -4447,12 +4456,12 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_C2Tuple_SignatureCVec_SignatureZZNoneZPtr { result } } else { let _ = unsafe { Box::from_raw(o.contents.err) }; - o.contents.err = std::ptr::null_mut(); - CResult_C2Tuple_SignatureCVec_SignatureZZNoneZPtr { err: std::ptr::null_mut() } + o.contents.err = core::ptr::null_mut(); + CResult_C2Tuple_SignatureCVec_SignatureZZNoneZPtr { err: core::ptr::null_mut() } }; Self { contents, @@ -4468,7 +4477,7 @@ impl Clone for CResult_C2Tuple_SignatureCVec_SignatureZZNoneZ { } } } else { Self { result_ok: false, contents: CResult_C2Tuple_SignatureCVec_SignatureZZNoneZPtr { - err: std::ptr::null_mut() + err: core::ptr::null_mut() } } } } @@ -4484,7 +4493,7 @@ pub union CResult_SignatureNoneZPtr { /// Reading from this pointer when `result_ok` is not set is undefined. pub result: *mut crate::c_types::Signature, /// Note that this value is always NULL, as there are no contents in the Err variant - pub err: *mut std::ffi::c_void, + pub err: *mut core::ffi::c_void, } #[repr(C)] /// A CResult_SignatureNoneZ represents the result of a fallible operation, @@ -4512,7 +4521,7 @@ pub extern "C" fn CResult_SignatureNoneZ_ok(o: crate::c_types::Signature) -> CRe pub extern "C" fn CResult_SignatureNoneZ_err() -> CResult_SignatureNoneZ { CResult_SignatureNoneZ { contents: CResult_SignatureNoneZPtr { - err: std::ptr::null_mut(), + err: core::ptr::null_mut(), }, result_ok: false, } @@ -4539,12 +4548,12 @@ impl From> for CResu fn from(mut o: crate::c_types::CResultTempl) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_SignatureNoneZPtr { result } } else { let _ = unsafe { Box::from_raw(o.contents.err) }; - o.contents.err = std::ptr::null_mut(); - CResult_SignatureNoneZPtr { err: std::ptr::null_mut() } + o.contents.err = core::ptr::null_mut(); + CResult_SignatureNoneZPtr { err: core::ptr::null_mut() } }; Self { contents, @@ -4560,7 +4569,7 @@ impl Clone for CResult_SignatureNoneZ { } } } else { Self { result_ok: false, contents: CResult_SignatureNoneZPtr { - err: std::ptr::null_mut() + err: core::ptr::null_mut() } } } } @@ -4635,11 +4644,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_SignDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_SignDecodeErrorZPtr { err } }; Self { @@ -4678,13 +4687,13 @@ pub struct CVec_u8Z { impl CVec_u8Z { #[allow(unused)] pub(crate) fn into_rust(&mut self) -> Vec { if self.datalen == 0 { return Vec::new(); } - let ret = unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); - self.data = std::ptr::null_mut(); + let ret = unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); + self.data = core::ptr::null_mut(); self.datalen = 0; ret } #[allow(unused)] pub(crate) fn as_slice(&self) -> &[u8] { - unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) } + unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) } } } impl From> for CVec_u8Z { @@ -4700,14 +4709,14 @@ pub extern "C" fn CVec_u8Z_free(_res: CVec_u8Z) { } impl Drop for CVec_u8Z { fn drop(&mut self) { if self.datalen == 0 { return; } - unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }; + unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }; } } impl Clone for CVec_u8Z { fn clone(&self) -> Self { let mut res = Vec::new(); if self.datalen == 0 { return Self::from(res); } - res.extend_from_slice(unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) }); + res.extend_from_slice(unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) }); Self::from(res) } } @@ -4718,7 +4727,7 @@ pub union CResult_RecoverableSignatureNoneZPtr { /// Reading from this pointer when `result_ok` is not set is undefined. pub result: *mut crate::c_types::RecoverableSignature, /// Note that this value is always NULL, as there are no contents in the Err variant - pub err: *mut std::ffi::c_void, + pub err: *mut core::ffi::c_void, } #[repr(C)] /// A CResult_RecoverableSignatureNoneZ represents the result of a fallible operation, @@ -4746,7 +4755,7 @@ pub extern "C" fn CResult_RecoverableSignatureNoneZ_ok(o: crate::c_types::Recove pub extern "C" fn CResult_RecoverableSignatureNoneZ_err() -> CResult_RecoverableSignatureNoneZ { CResult_RecoverableSignatureNoneZ { contents: CResult_RecoverableSignatureNoneZPtr { - err: std::ptr::null_mut(), + err: core::ptr::null_mut(), }, result_ok: false, } @@ -4773,12 +4782,12 @@ impl From fn from(mut o: crate::c_types::CResultTempl) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_RecoverableSignatureNoneZPtr { result } } else { let _ = unsafe { Box::from_raw(o.contents.err) }; - o.contents.err = std::ptr::null_mut(); - CResult_RecoverableSignatureNoneZPtr { err: std::ptr::null_mut() } + o.contents.err = core::ptr::null_mut(); + CResult_RecoverableSignatureNoneZPtr { err: core::ptr::null_mut() } }; Self { contents, @@ -4794,7 +4803,7 @@ impl Clone for CResult_RecoverableSignatureNoneZ { } } } else { Self { result_ok: false, contents: CResult_RecoverableSignatureNoneZPtr { - err: std::ptr::null_mut() + err: core::ptr::null_mut() } } } } @@ -4816,13 +4825,13 @@ pub struct CVec_CVec_u8ZZ { impl CVec_CVec_u8ZZ { #[allow(unused)] pub(crate) fn into_rust(&mut self) -> Vec { if self.datalen == 0 { return Vec::new(); } - let ret = unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); - self.data = std::ptr::null_mut(); + let ret = unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); + self.data = core::ptr::null_mut(); self.datalen = 0; ret } #[allow(unused)] pub(crate) fn as_slice(&self) -> &[crate::c_types::derived::CVec_u8Z] { - unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) } + unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) } } } impl From> for CVec_CVec_u8ZZ { @@ -4838,14 +4847,14 @@ pub extern "C" fn CVec_CVec_u8ZZ_free(_res: CVec_CVec_u8ZZ) { } impl Drop for CVec_CVec_u8ZZ { fn drop(&mut self) { if self.datalen == 0 { return; } - unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }; + unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }; } } impl Clone for CVec_CVec_u8ZZ { fn clone(&self) -> Self { let mut res = Vec::new(); if self.datalen == 0 { return Self::from(res); } - res.extend_from_slice(unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) }); + res.extend_from_slice(unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) }); Self::from(res) } } @@ -4856,7 +4865,7 @@ pub union CResult_CVec_CVec_u8ZZNoneZPtr { /// Reading from this pointer when `result_ok` is not set is undefined. pub result: *mut crate::c_types::derived::CVec_CVec_u8ZZ, /// Note that this value is always NULL, as there are no contents in the Err variant - pub err: *mut std::ffi::c_void, + pub err: *mut core::ffi::c_void, } #[repr(C)] /// A CResult_CVec_CVec_u8ZZNoneZ represents the result of a fallible operation, @@ -4884,7 +4893,7 @@ pub extern "C" fn CResult_CVec_CVec_u8ZZNoneZ_ok(o: crate::c_types::derived::CVe pub extern "C" fn CResult_CVec_CVec_u8ZZNoneZ_err() -> CResult_CVec_CVec_u8ZZNoneZ { CResult_CVec_CVec_u8ZZNoneZ { contents: CResult_CVec_CVec_u8ZZNoneZPtr { - err: std::ptr::null_mut(), + err: core::ptr::null_mut(), }, result_ok: false, } @@ -4911,12 +4920,12 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_CVec_CVec_u8ZZNoneZPtr { result } } else { let _ = unsafe { Box::from_raw(o.contents.err) }; - o.contents.err = std::ptr::null_mut(); - CResult_CVec_CVec_u8ZZNoneZPtr { err: std::ptr::null_mut() } + o.contents.err = core::ptr::null_mut(); + CResult_CVec_CVec_u8ZZNoneZPtr { err: core::ptr::null_mut() } }; Self { contents, @@ -4932,7 +4941,7 @@ impl Clone for CResult_CVec_CVec_u8ZZNoneZ { } } } else { Self { result_ok: false, contents: CResult_CVec_CVec_u8ZZNoneZPtr { - err: std::ptr::null_mut() + err: core::ptr::null_mut() } } } } @@ -5007,11 +5016,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_InMemorySignerDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_InMemorySignerDecodeErrorZPtr { err } }; Self { @@ -5050,13 +5059,13 @@ pub struct CVec_TxOutZ { impl CVec_TxOutZ { #[allow(unused)] pub(crate) fn into_rust(&mut self) -> Vec { if self.datalen == 0 { return Vec::new(); } - let ret = unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); - self.data = std::ptr::null_mut(); + let ret = unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); + self.data = core::ptr::null_mut(); self.datalen = 0; ret } #[allow(unused)] pub(crate) fn as_slice(&self) -> &[crate::c_types::TxOut] { - unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) } + unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) } } } impl From> for CVec_TxOutZ { @@ -5072,14 +5081,14 @@ pub extern "C" fn CVec_TxOutZ_free(_res: CVec_TxOutZ) { } impl Drop for CVec_TxOutZ { fn drop(&mut self) { if self.datalen == 0 { return; } - unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }; + unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }; } } impl Clone for CVec_TxOutZ { fn clone(&self) -> Self { let mut res = Vec::new(); if self.datalen == 0 { return Self::from(res); } - res.extend_from_slice(unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) }); + res.extend_from_slice(unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) }); Self::from(res) } } @@ -5090,7 +5099,7 @@ pub union CResult_TransactionNoneZPtr { /// Reading from this pointer when `result_ok` is not set is undefined. pub result: *mut crate::c_types::Transaction, /// Note that this value is always NULL, as there are no contents in the Err variant - pub err: *mut std::ffi::c_void, + pub err: *mut core::ffi::c_void, } #[repr(C)] /// A CResult_TransactionNoneZ represents the result of a fallible operation, @@ -5118,7 +5127,7 @@ pub extern "C" fn CResult_TransactionNoneZ_ok(o: crate::c_types::Transaction) -> pub extern "C" fn CResult_TransactionNoneZ_err() -> CResult_TransactionNoneZ { CResult_TransactionNoneZ { contents: CResult_TransactionNoneZPtr { - err: std::ptr::null_mut(), + err: core::ptr::null_mut(), }, result_ok: false, } @@ -5145,12 +5154,12 @@ impl From> for CRe fn from(mut o: crate::c_types::CResultTempl) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_TransactionNoneZPtr { result } } else { let _ = unsafe { Box::from_raw(o.contents.err) }; - o.contents.err = std::ptr::null_mut(); - CResult_TransactionNoneZPtr { err: std::ptr::null_mut() } + o.contents.err = core::ptr::null_mut(); + CResult_TransactionNoneZPtr { err: core::ptr::null_mut() } }; Self { contents, @@ -5166,7 +5175,7 @@ impl Clone for CResult_TransactionNoneZ { } } } else { Self { result_ok: false, contents: CResult_TransactionNoneZPtr { - err: std::ptr::null_mut() + err: core::ptr::null_mut() } } } } @@ -5218,13 +5227,13 @@ pub struct CVec_C2Tuple_BlockHashChannelMonitorZZ { impl CVec_C2Tuple_BlockHashChannelMonitorZZ { #[allow(unused)] pub(crate) fn into_rust(&mut self) -> Vec { if self.datalen == 0 { return Vec::new(); } - let ret = unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); - self.data = std::ptr::null_mut(); + let ret = unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); + self.data = core::ptr::null_mut(); self.datalen = 0; ret } #[allow(unused)] pub(crate) fn as_slice(&self) -> &[crate::c_types::derived::C2Tuple_BlockHashChannelMonitorZ] { - unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) } + unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) } } } impl From> for CVec_C2Tuple_BlockHashChannelMonitorZZ { @@ -5240,7 +5249,7 @@ pub extern "C" fn CVec_C2Tuple_BlockHashChannelMonitorZZ_free(_res: CVec_C2Tuple impl Drop for CVec_C2Tuple_BlockHashChannelMonitorZZ { fn drop(&mut self) { if self.datalen == 0 { return; } - unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }; + unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }; } } #[repr(C)] @@ -5309,11 +5318,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_CVec_C2Tuple_BlockHashChannelMonitorZZErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_CVec_C2Tuple_BlockHashChannelMonitorZZErrorZPtr { err } }; Self { @@ -5363,7 +5372,7 @@ pub extern "C" fn COption_u16Z_clone(orig: &COption_u16Z) -> COption_u16Z { Clon /// The contents of CResult_NoneAPIErrorZ pub union CResult_NoneAPIErrorZPtr { /// Note that this value is always NULL, as there are no contents in the OK variant - pub result: *mut std::ffi::c_void, + pub result: *mut core::ffi::c_void, /// A pointer to the contents in the error state. /// Reading from this pointer when `result_ok` is set is undefined. pub err: *mut crate::lightning::util::errors::APIError, @@ -5384,7 +5393,7 @@ pub struct CResult_NoneAPIErrorZ { pub extern "C" fn CResult_NoneAPIErrorZ_ok() -> CResult_NoneAPIErrorZ { CResult_NoneAPIErrorZ { contents: CResult_NoneAPIErrorZPtr { - result: std::ptr::null_mut(), + result: core::ptr::null_mut(), }, result_ok: true, } @@ -5421,11 +5430,11 @@ impl From) -> Self { let contents = if o.result_ok { let _ = unsafe { Box::from_raw(o.contents.result) }; - o.contents.result = std::ptr::null_mut(); - CResult_NoneAPIErrorZPtr { result: std::ptr::null_mut() } + o.contents.result = core::ptr::null_mut(); + CResult_NoneAPIErrorZPtr { result: core::ptr::null_mut() } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_NoneAPIErrorZPtr { err } }; Self { @@ -5438,7 +5447,7 @@ impl Clone for CResult_NoneAPIErrorZ { fn clone(&self) -> Self { if self.result_ok { Self { result_ok: true, contents: CResult_NoneAPIErrorZPtr { - result: std::ptr::null_mut() + result: core::ptr::null_mut() } } } else { Self { result_ok: false, contents: CResult_NoneAPIErrorZPtr { @@ -5464,13 +5473,13 @@ pub struct CVec_CResult_NoneAPIErrorZZ { impl CVec_CResult_NoneAPIErrorZZ { #[allow(unused)] pub(crate) fn into_rust(&mut self) -> Vec { if self.datalen == 0 { return Vec::new(); } - let ret = unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); - self.data = std::ptr::null_mut(); + let ret = unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); + self.data = core::ptr::null_mut(); self.datalen = 0; ret } #[allow(unused)] pub(crate) fn as_slice(&self) -> &[crate::c_types::derived::CResult_NoneAPIErrorZ] { - unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) } + unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) } } } impl From> for CVec_CResult_NoneAPIErrorZZ { @@ -5486,14 +5495,14 @@ pub extern "C" fn CVec_CResult_NoneAPIErrorZZ_free(_res: CVec_CResult_NoneAPIErr impl Drop for CVec_CResult_NoneAPIErrorZZ { fn drop(&mut self) { if self.datalen == 0 { return; } - unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }; + unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }; } } impl Clone for CVec_CResult_NoneAPIErrorZZ { fn clone(&self) -> Self { let mut res = Vec::new(); if self.datalen == 0 { return Self::from(res); } - res.extend_from_slice(unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) }); + res.extend_from_slice(unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) }); Self::from(res) } } @@ -5510,13 +5519,13 @@ pub struct CVec_APIErrorZ { impl CVec_APIErrorZ { #[allow(unused)] pub(crate) fn into_rust(&mut self) -> Vec { if self.datalen == 0 { return Vec::new(); } - let ret = unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); - self.data = std::ptr::null_mut(); + let ret = unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); + self.data = core::ptr::null_mut(); self.datalen = 0; ret } #[allow(unused)] pub(crate) fn as_slice(&self) -> &[crate::lightning::util::errors::APIError] { - unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) } + unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) } } } impl From> for CVec_APIErrorZ { @@ -5532,14 +5541,14 @@ pub extern "C" fn CVec_APIErrorZ_free(_res: CVec_APIErrorZ) { } impl Drop for CVec_APIErrorZ { fn drop(&mut self) { if self.datalen == 0 { return; } - unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }; + unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }; } } impl Clone for CVec_APIErrorZ { fn clone(&self) -> Self { let mut res = Vec::new(); if self.datalen == 0 { return Self::from(res); } - res.extend_from_slice(unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) }); + res.extend_from_slice(unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) }); Self::from(res) } } @@ -5609,11 +5618,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult__u832APIErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult__u832APIErrorZPtr { err } }; Self { @@ -5705,11 +5714,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_PaymentIdPaymentSendFailureZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_PaymentIdPaymentSendFailureZPtr { err } }; Self { @@ -5739,7 +5748,7 @@ pub extern "C" fn CResult_PaymentIdPaymentSendFailureZ_clone(orig: &CResult_Paym /// The contents of CResult_NonePaymentSendFailureZ pub union CResult_NonePaymentSendFailureZPtr { /// Note that this value is always NULL, as there are no contents in the OK variant - pub result: *mut std::ffi::c_void, + pub result: *mut core::ffi::c_void, /// A pointer to the contents in the error state. /// Reading from this pointer when `result_ok` is set is undefined. pub err: *mut crate::lightning::ln::channelmanager::PaymentSendFailure, @@ -5760,7 +5769,7 @@ pub struct CResult_NonePaymentSendFailureZ { pub extern "C" fn CResult_NonePaymentSendFailureZ_ok() -> CResult_NonePaymentSendFailureZ { CResult_NonePaymentSendFailureZ { contents: CResult_NonePaymentSendFailureZPtr { - result: std::ptr::null_mut(), + result: core::ptr::null_mut(), }, result_ok: true, } @@ -5797,11 +5806,11 @@ impl From) -> Self { let contents = if o.result_ok { let _ = unsafe { Box::from_raw(o.contents.result) }; - o.contents.result = std::ptr::null_mut(); - CResult_NonePaymentSendFailureZPtr { result: std::ptr::null_mut() } + o.contents.result = core::ptr::null_mut(); + CResult_NonePaymentSendFailureZPtr { result: core::ptr::null_mut() } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_NonePaymentSendFailureZPtr { err } }; Self { @@ -5814,7 +5823,7 @@ impl Clone for CResult_NonePaymentSendFailureZ { fn clone(&self) -> Self { if self.result_ok { Self { result_ok: true, contents: CResult_NonePaymentSendFailureZPtr { - result: std::ptr::null_mut() + result: core::ptr::null_mut() } } } else { Self { result_ok: false, contents: CResult_NonePaymentSendFailureZPtr { @@ -5935,11 +5944,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_C2Tuple_PaymentHashPaymentIdZPaymentSendFailureZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_C2Tuple_PaymentHashPaymentIdZPaymentSendFailureZPtr { err } }; Self { @@ -5978,13 +5987,13 @@ pub struct CVec_NetAddressZ { impl CVec_NetAddressZ { #[allow(unused)] pub(crate) fn into_rust(&mut self) -> Vec { if self.datalen == 0 { return Vec::new(); } - let ret = unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); - self.data = std::ptr::null_mut(); + let ret = unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); + self.data = core::ptr::null_mut(); self.datalen = 0; ret } #[allow(unused)] pub(crate) fn as_slice(&self) -> &[crate::lightning::ln::msgs::NetAddress] { - unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) } + unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) } } } impl From> for CVec_NetAddressZ { @@ -6000,14 +6009,14 @@ pub extern "C" fn CVec_NetAddressZ_free(_res: CVec_NetAddressZ) { } impl Drop for CVec_NetAddressZ { fn drop(&mut self) { if self.datalen == 0 { return; } - unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }; + unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }; } } impl Clone for CVec_NetAddressZ { fn clone(&self) -> Self { let mut res = Vec::new(); if self.datalen == 0 { return Self::from(res); } - res.extend_from_slice(unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) }); + res.extend_from_slice(unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) }); Self::from(res) } } @@ -6060,7 +6069,7 @@ pub union CResult_C2Tuple_PaymentHashPaymentSecretZNoneZPtr { /// Reading from this pointer when `result_ok` is not set is undefined. pub result: *mut crate::c_types::derived::C2Tuple_PaymentHashPaymentSecretZ, /// Note that this value is always NULL, as there are no contents in the Err variant - pub err: *mut std::ffi::c_void, + pub err: *mut core::ffi::c_void, } #[repr(C)] /// A CResult_C2Tuple_PaymentHashPaymentSecretZNoneZ represents the result of a fallible operation, @@ -6088,7 +6097,7 @@ pub extern "C" fn CResult_C2Tuple_PaymentHashPaymentSecretZNoneZ_ok(o: crate::c_ pub extern "C" fn CResult_C2Tuple_PaymentHashPaymentSecretZNoneZ_err() -> CResult_C2Tuple_PaymentHashPaymentSecretZNoneZ { CResult_C2Tuple_PaymentHashPaymentSecretZNoneZ { contents: CResult_C2Tuple_PaymentHashPaymentSecretZNoneZPtr { - err: std::ptr::null_mut(), + err: core::ptr::null_mut(), }, result_ok: false, } @@ -6115,12 +6124,12 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_C2Tuple_PaymentHashPaymentSecretZNoneZPtr { result } } else { let _ = unsafe { Box::from_raw(o.contents.err) }; - o.contents.err = std::ptr::null_mut(); - CResult_C2Tuple_PaymentHashPaymentSecretZNoneZPtr { err: std::ptr::null_mut() } + o.contents.err = core::ptr::null_mut(); + CResult_C2Tuple_PaymentHashPaymentSecretZNoneZPtr { err: core::ptr::null_mut() } }; Self { contents, @@ -6136,7 +6145,7 @@ impl Clone for CResult_C2Tuple_PaymentHashPaymentSecretZNoneZ { } } } else { Self { result_ok: false, contents: CResult_C2Tuple_PaymentHashPaymentSecretZNoneZPtr { - err: std::ptr::null_mut() + err: core::ptr::null_mut() } } } } @@ -6211,11 +6220,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_C2Tuple_PaymentHashPaymentSecretZAPIErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_C2Tuple_PaymentHashPaymentSecretZAPIErrorZPtr { err } }; Self { @@ -6248,7 +6257,7 @@ pub union CResult_PaymentSecretNoneZPtr { /// Reading from this pointer when `result_ok` is not set is undefined. pub result: *mut crate::c_types::ThirtyTwoBytes, /// Note that this value is always NULL, as there are no contents in the Err variant - pub err: *mut std::ffi::c_void, + pub err: *mut core::ffi::c_void, } #[repr(C)] /// A CResult_PaymentSecretNoneZ represents the result of a fallible operation, @@ -6276,7 +6285,7 @@ pub extern "C" fn CResult_PaymentSecretNoneZ_ok(o: crate::c_types::ThirtyTwoByte pub extern "C" fn CResult_PaymentSecretNoneZ_err() -> CResult_PaymentSecretNoneZ { CResult_PaymentSecretNoneZ { contents: CResult_PaymentSecretNoneZPtr { - err: std::ptr::null_mut(), + err: core::ptr::null_mut(), }, result_ok: false, } @@ -6303,12 +6312,12 @@ impl From> for fn from(mut o: crate::c_types::CResultTempl) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_PaymentSecretNoneZPtr { result } } else { let _ = unsafe { Box::from_raw(o.contents.err) }; - o.contents.err = std::ptr::null_mut(); - CResult_PaymentSecretNoneZPtr { err: std::ptr::null_mut() } + o.contents.err = core::ptr::null_mut(); + CResult_PaymentSecretNoneZPtr { err: core::ptr::null_mut() } }; Self { contents, @@ -6324,7 +6333,7 @@ impl Clone for CResult_PaymentSecretNoneZ { } } } else { Self { result_ok: false, contents: CResult_PaymentSecretNoneZPtr { - err: std::ptr::null_mut() + err: core::ptr::null_mut() } } } } @@ -6399,11 +6408,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_PaymentSecretAPIErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_PaymentSecretAPIErrorZPtr { err } }; Self { @@ -6495,11 +6504,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_PaymentPreimageAPIErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_PaymentPreimageAPIErrorZPtr { err } }; Self { @@ -6538,13 +6547,13 @@ pub struct CVec_ChannelMonitorZ { impl CVec_ChannelMonitorZ { #[allow(unused)] pub(crate) fn into_rust(&mut self) -> Vec { if self.datalen == 0 { return Vec::new(); } - let ret = unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); - self.data = std::ptr::null_mut(); + let ret = unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); + self.data = core::ptr::null_mut(); self.datalen = 0; ret } #[allow(unused)] pub(crate) fn as_slice(&self) -> &[crate::lightning::chain::channelmonitor::ChannelMonitor] { - unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) } + unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) } } } impl From> for CVec_ChannelMonitorZ { @@ -6560,7 +6569,7 @@ pub extern "C" fn CVec_ChannelMonitorZ_free(_res: CVec_ChannelMonitorZ) { } impl Drop for CVec_ChannelMonitorZ { fn drop(&mut self) { if self.datalen == 0 { return; } - unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }; + unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }; } } #[repr(C)] @@ -6659,11 +6668,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_C2Tuple_BlockHashChannelManagerZDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_C2Tuple_BlockHashChannelManagerZDecodeErrorZPtr { err } }; Self { @@ -6738,11 +6747,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_ChannelConfigDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_ChannelConfigDecodeErrorZPtr { err } }; Self { @@ -6834,11 +6843,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_OutPointDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_OutPointDecodeErrorZPtr { err } }; Self { @@ -6962,11 +6971,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_COption_TypeZDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_COption_TypeZDecodeErrorZPtr { err } }; Self { @@ -7041,11 +7050,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_PaymentIdPaymentErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_PaymentIdPaymentErrorZPtr { err } }; Self { @@ -7078,7 +7087,7 @@ pub union CResult_SiPrefixNoneZPtr { /// Reading from this pointer when `result_ok` is not set is undefined. pub result: *mut crate::lightning_invoice::SiPrefix, /// Note that this value is always NULL, as there are no contents in the Err variant - pub err: *mut std::ffi::c_void, + pub err: *mut core::ffi::c_void, } #[repr(C)] /// A CResult_SiPrefixNoneZ represents the result of a fallible operation, @@ -7106,7 +7115,7 @@ pub extern "C" fn CResult_SiPrefixNoneZ_ok(o: crate::lightning_invoice::SiPrefix pub extern "C" fn CResult_SiPrefixNoneZ_err() -> CResult_SiPrefixNoneZ { CResult_SiPrefixNoneZ { contents: CResult_SiPrefixNoneZPtr { - err: std::ptr::null_mut(), + err: core::ptr::null_mut(), }, result_ok: false, } @@ -7133,12 +7142,12 @@ impl From> fn from(mut o: crate::c_types::CResultTempl) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_SiPrefixNoneZPtr { result } } else { let _ = unsafe { Box::from_raw(o.contents.err) }; - o.contents.err = std::ptr::null_mut(); - CResult_SiPrefixNoneZPtr { err: std::ptr::null_mut() } + o.contents.err = core::ptr::null_mut(); + CResult_SiPrefixNoneZPtr { err: core::ptr::null_mut() } }; Self { contents, @@ -7154,7 +7163,7 @@ impl Clone for CResult_SiPrefixNoneZ { } } } else { Self { result_ok: false, contents: CResult_SiPrefixNoneZPtr { - err: std::ptr::null_mut() + err: core::ptr::null_mut() } } } } @@ -7170,7 +7179,7 @@ pub union CResult_InvoiceNoneZPtr { /// Reading from this pointer when `result_ok` is not set is undefined. pub result: *mut crate::lightning_invoice::Invoice, /// Note that this value is always NULL, as there are no contents in the Err variant - pub err: *mut std::ffi::c_void, + pub err: *mut core::ffi::c_void, } #[repr(C)] /// A CResult_InvoiceNoneZ represents the result of a fallible operation, @@ -7198,7 +7207,7 @@ pub extern "C" fn CResult_InvoiceNoneZ_ok(o: crate::lightning_invoice::Invoice) pub extern "C" fn CResult_InvoiceNoneZ_err() -> CResult_InvoiceNoneZ { CResult_InvoiceNoneZ { contents: CResult_InvoiceNoneZPtr { - err: std::ptr::null_mut(), + err: core::ptr::null_mut(), }, result_ok: false, } @@ -7225,12 +7234,12 @@ impl From> f fn from(mut o: crate::c_types::CResultTempl) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_InvoiceNoneZPtr { result } } else { let _ = unsafe { Box::from_raw(o.contents.err) }; - o.contents.err = std::ptr::null_mut(); - CResult_InvoiceNoneZPtr { err: std::ptr::null_mut() } + o.contents.err = core::ptr::null_mut(); + CResult_InvoiceNoneZPtr { err: core::ptr::null_mut() } }; Self { contents, @@ -7246,7 +7255,7 @@ impl Clone for CResult_InvoiceNoneZ { } } } else { Self { result_ok: false, contents: CResult_InvoiceNoneZPtr { - err: std::ptr::null_mut() + err: core::ptr::null_mut() } } } } @@ -7262,7 +7271,7 @@ pub union CResult_SignedRawInvoiceNoneZPtr { /// Reading from this pointer when `result_ok` is not set is undefined. pub result: *mut crate::lightning_invoice::SignedRawInvoice, /// Note that this value is always NULL, as there are no contents in the Err variant - pub err: *mut std::ffi::c_void, + pub err: *mut core::ffi::c_void, } #[repr(C)] /// A CResult_SignedRawInvoiceNoneZ represents the result of a fallible operation, @@ -7290,7 +7299,7 @@ pub extern "C" fn CResult_SignedRawInvoiceNoneZ_ok(o: crate::lightning_invoice:: pub extern "C" fn CResult_SignedRawInvoiceNoneZ_err() -> CResult_SignedRawInvoiceNoneZ { CResult_SignedRawInvoiceNoneZ { contents: CResult_SignedRawInvoiceNoneZPtr { - err: std::ptr::null_mut(), + err: core::ptr::null_mut(), }, result_ok: false, } @@ -7317,12 +7326,12 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_SignedRawInvoiceNoneZPtr { result } } else { let _ = unsafe { Box::from_raw(o.contents.err) }; - o.contents.err = std::ptr::null_mut(); - CResult_SignedRawInvoiceNoneZPtr { err: std::ptr::null_mut() } + o.contents.err = core::ptr::null_mut(); + CResult_SignedRawInvoiceNoneZPtr { err: core::ptr::null_mut() } }; Self { contents, @@ -7338,7 +7347,7 @@ impl Clone for CResult_SignedRawInvoiceNoneZ { } } } else { Self { result_ok: false, contents: CResult_SignedRawInvoiceNoneZPtr { - err: std::ptr::null_mut() + err: core::ptr::null_mut() } } } } @@ -7459,11 +7468,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_PayeePubKeyErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_PayeePubKeyErrorZPtr { err } }; Self { @@ -7502,13 +7511,13 @@ pub struct CVec_PrivateRouteZ { impl CVec_PrivateRouteZ { #[allow(unused)] pub(crate) fn into_rust(&mut self) -> Vec { if self.datalen == 0 { return Vec::new(); } - let ret = unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); - self.data = std::ptr::null_mut(); + let ret = unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); + self.data = core::ptr::null_mut(); self.datalen = 0; ret } #[allow(unused)] pub(crate) fn as_slice(&self) -> &[crate::lightning_invoice::PrivateRoute] { - unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) } + unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) } } } impl From> for CVec_PrivateRouteZ { @@ -7524,14 +7533,14 @@ pub extern "C" fn CVec_PrivateRouteZ_free(_res: CVec_PrivateRouteZ) { } impl Drop for CVec_PrivateRouteZ { fn drop(&mut self) { if self.datalen == 0 { return; } - unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }; + unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }; } } impl Clone for CVec_PrivateRouteZ { fn clone(&self) -> Self { let mut res = Vec::new(); if self.datalen == 0 { return Self::from(res); } - res.extend_from_slice(unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) }); + res.extend_from_slice(unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) }); Self::from(res) } } @@ -7601,11 +7610,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_PositiveTimestampCreationErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_PositiveTimestampCreationErrorZPtr { err } }; Self { @@ -7635,7 +7644,7 @@ pub extern "C" fn CResult_PositiveTimestampCreationErrorZ_clone(orig: &CResult_P /// The contents of CResult_NoneSemanticErrorZ pub union CResult_NoneSemanticErrorZPtr { /// Note that this value is always NULL, as there are no contents in the OK variant - pub result: *mut std::ffi::c_void, + pub result: *mut core::ffi::c_void, /// A pointer to the contents in the error state. /// Reading from this pointer when `result_ok` is set is undefined. pub err: *mut crate::lightning_invoice::SemanticError, @@ -7656,7 +7665,7 @@ pub struct CResult_NoneSemanticErrorZ { pub extern "C" fn CResult_NoneSemanticErrorZ_ok() -> CResult_NoneSemanticErrorZ { CResult_NoneSemanticErrorZ { contents: CResult_NoneSemanticErrorZPtr { - result: std::ptr::null_mut(), + result: core::ptr::null_mut(), }, result_ok: true, } @@ -7693,11 +7702,11 @@ impl From) -> Self { let contents = if o.result_ok { let _ = unsafe { Box::from_raw(o.contents.result) }; - o.contents.result = std::ptr::null_mut(); - CResult_NoneSemanticErrorZPtr { result: std::ptr::null_mut() } + o.contents.result = core::ptr::null_mut(); + CResult_NoneSemanticErrorZPtr { result: core::ptr::null_mut() } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_NoneSemanticErrorZPtr { err } }; Self { @@ -7710,7 +7719,7 @@ impl Clone for CResult_NoneSemanticErrorZ { fn clone(&self) -> Self { if self.result_ok { Self { result_ok: true, contents: CResult_NoneSemanticErrorZPtr { - result: std::ptr::null_mut() + result: core::ptr::null_mut() } } } else { Self { result_ok: false, contents: CResult_NoneSemanticErrorZPtr { @@ -7789,11 +7798,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_InvoiceSemanticErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_InvoiceSemanticErrorZPtr { err } }; Self { @@ -7885,11 +7894,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_DescriptionCreationErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_DescriptionCreationErrorZPtr { err } }; Self { @@ -7981,11 +7990,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_ExpiryTimeCreationErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_ExpiryTimeCreationErrorZPtr { err } }; Self { @@ -8077,11 +8086,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_PrivateRouteCreationErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_PrivateRouteCreationErrorZPtr { err } }; Self { @@ -8173,11 +8182,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_StringErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_StringErrorZPtr { err } }; Self { @@ -8252,11 +8261,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_ChannelMonitorUpdateDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_ChannelMonitorUpdateDecodeErrorZPtr { err } }; Self { @@ -8385,11 +8394,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_COption_MonitorEventZDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_COption_MonitorEventZDecodeErrorZPtr { err } }; Self { @@ -8481,11 +8490,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_HTLCUpdateDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_HTLCUpdateDecodeErrorZPtr { err } }; Self { @@ -8608,13 +8617,13 @@ pub struct CVec_C2Tuple_u32ScriptZZ { impl CVec_C2Tuple_u32ScriptZZ { #[allow(unused)] pub(crate) fn into_rust(&mut self) -> Vec { if self.datalen == 0 { return Vec::new(); } - let ret = unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); - self.data = std::ptr::null_mut(); + let ret = unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); + self.data = core::ptr::null_mut(); self.datalen = 0; ret } #[allow(unused)] pub(crate) fn as_slice(&self) -> &[crate::c_types::derived::C2Tuple_u32ScriptZ] { - unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) } + unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) } } } impl From> for CVec_C2Tuple_u32ScriptZZ { @@ -8630,14 +8639,14 @@ pub extern "C" fn CVec_C2Tuple_u32ScriptZZ_free(_res: CVec_C2Tuple_u32ScriptZZ) impl Drop for CVec_C2Tuple_u32ScriptZZ { fn drop(&mut self) { if self.datalen == 0 { return; } - unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }; + unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }; } } impl Clone for CVec_C2Tuple_u32ScriptZZ { fn clone(&self) -> Self { let mut res = Vec::new(); if self.datalen == 0 { return Self::from(res); } - res.extend_from_slice(unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) }); + res.extend_from_slice(unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) }); Self::from(res) } } @@ -8696,13 +8705,13 @@ pub struct CVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ { impl CVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ { #[allow(unused)] pub(crate) fn into_rust(&mut self) -> Vec { if self.datalen == 0 { return Vec::new(); } - let ret = unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); - self.data = std::ptr::null_mut(); + let ret = unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); + self.data = core::ptr::null_mut(); self.datalen = 0; ret } #[allow(unused)] pub(crate) fn as_slice(&self) -> &[crate::c_types::derived::C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZ] { - unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) } + unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) } } } impl From> for CVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ { @@ -8718,14 +8727,14 @@ pub extern "C" fn CVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ_free(_res: CVec_C2 impl Drop for CVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ { fn drop(&mut self) { if self.datalen == 0 { return; } - unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }; + unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }; } } impl Clone for CVec_C2Tuple_TxidCVec_C2Tuple_u32ScriptZZZZ { fn clone(&self) -> Self { let mut res = Vec::new(); if self.datalen == 0 { return Self::from(res); } - res.extend_from_slice(unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) }); + res.extend_from_slice(unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) }); Self::from(res) } } @@ -8742,13 +8751,13 @@ pub struct CVec_EventZ { impl CVec_EventZ { #[allow(unused)] pub(crate) fn into_rust(&mut self) -> Vec { if self.datalen == 0 { return Vec::new(); } - let ret = unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); - self.data = std::ptr::null_mut(); + let ret = unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); + self.data = core::ptr::null_mut(); self.datalen = 0; ret } #[allow(unused)] pub(crate) fn as_slice(&self) -> &[crate::lightning::util::events::Event] { - unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) } + unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) } } } impl From> for CVec_EventZ { @@ -8764,14 +8773,14 @@ pub extern "C" fn CVec_EventZ_free(_res: CVec_EventZ) { } impl Drop for CVec_EventZ { fn drop(&mut self) { if self.datalen == 0 { return; } - unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }; + unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }; } } impl Clone for CVec_EventZ { fn clone(&self) -> Self { let mut res = Vec::new(); if self.datalen == 0 { return Self::from(res); } - res.extend_from_slice(unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) }); + res.extend_from_slice(unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) }); Self::from(res) } } @@ -8788,13 +8797,13 @@ pub struct CVec_TransactionZ { impl CVec_TransactionZ { #[allow(unused)] pub(crate) fn into_rust(&mut self) -> Vec { if self.datalen == 0 { return Vec::new(); } - let ret = unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); - self.data = std::ptr::null_mut(); + let ret = unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); + self.data = core::ptr::null_mut(); self.datalen = 0; ret } #[allow(unused)] pub(crate) fn as_slice(&self) -> &[crate::c_types::Transaction] { - unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) } + unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) } } } impl From> for CVec_TransactionZ { @@ -8810,14 +8819,14 @@ pub extern "C" fn CVec_TransactionZ_free(_res: CVec_TransactionZ) { } impl Drop for CVec_TransactionZ { fn drop(&mut self) { if self.datalen == 0 { return; } - unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }; + unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }; } } impl Clone for CVec_TransactionZ { fn clone(&self) -> Self { let mut res = Vec::new(); if self.datalen == 0 { return Self::from(res); } - res.extend_from_slice(unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) }); + res.extend_from_slice(unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) }); Self::from(res) } } @@ -8876,13 +8885,13 @@ pub struct CVec_C2Tuple_u32TxOutZZ { impl CVec_C2Tuple_u32TxOutZZ { #[allow(unused)] pub(crate) fn into_rust(&mut self) -> Vec { if self.datalen == 0 { return Vec::new(); } - let ret = unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); - self.data = std::ptr::null_mut(); + let ret = unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); + self.data = core::ptr::null_mut(); self.datalen = 0; ret } #[allow(unused)] pub(crate) fn as_slice(&self) -> &[crate::c_types::derived::C2Tuple_u32TxOutZ] { - unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) } + unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) } } } impl From> for CVec_C2Tuple_u32TxOutZZ { @@ -8898,14 +8907,14 @@ pub extern "C" fn CVec_C2Tuple_u32TxOutZZ_free(_res: CVec_C2Tuple_u32TxOutZZ) { impl Drop for CVec_C2Tuple_u32TxOutZZ { fn drop(&mut self) { if self.datalen == 0 { return; } - unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }; + unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }; } } impl Clone for CVec_C2Tuple_u32TxOutZZ { fn clone(&self) -> Self { let mut res = Vec::new(); if self.datalen == 0 { return Self::from(res); } - res.extend_from_slice(unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) }); + res.extend_from_slice(unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) }); Self::from(res) } } @@ -8964,13 +8973,13 @@ pub struct CVec_TransactionOutputsZ { impl CVec_TransactionOutputsZ { #[allow(unused)] pub(crate) fn into_rust(&mut self) -> Vec { if self.datalen == 0 { return Vec::new(); } - let ret = unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); - self.data = std::ptr::null_mut(); + let ret = unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); + self.data = core::ptr::null_mut(); self.datalen = 0; ret } #[allow(unused)] pub(crate) fn as_slice(&self) -> &[crate::c_types::derived::C2Tuple_TxidCVec_C2Tuple_u32TxOutZZZ] { - unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) } + unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) } } } impl From> for CVec_TransactionOutputsZ { @@ -8986,14 +8995,14 @@ pub extern "C" fn CVec_TransactionOutputsZ_free(_res: CVec_TransactionOutputsZ) impl Drop for CVec_TransactionOutputsZ { fn drop(&mut self) { if self.datalen == 0 { return; } - unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }; + unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }; } } impl Clone for CVec_TransactionOutputsZ { fn clone(&self) -> Self { let mut res = Vec::new(); if self.datalen == 0 { return Self::from(res); } - res.extend_from_slice(unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) }); + res.extend_from_slice(unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) }); Self::from(res) } } @@ -9010,13 +9019,13 @@ pub struct CVec_BalanceZ { impl CVec_BalanceZ { #[allow(unused)] pub(crate) fn into_rust(&mut self) -> Vec { if self.datalen == 0 { return Vec::new(); } - let ret = unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); - self.data = std::ptr::null_mut(); + let ret = unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); + self.data = core::ptr::null_mut(); self.datalen = 0; ret } #[allow(unused)] pub(crate) fn as_slice(&self) -> &[crate::lightning::chain::channelmonitor::Balance] { - unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) } + unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) } } } impl From> for CVec_BalanceZ { @@ -9032,14 +9041,14 @@ pub extern "C" fn CVec_BalanceZ_free(_res: CVec_BalanceZ) { } impl Drop for CVec_BalanceZ { fn drop(&mut self) { if self.datalen == 0 { return; } - unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }; + unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }; } } impl Clone for CVec_BalanceZ { fn clone(&self) -> Self { let mut res = Vec::new(); if self.datalen == 0 { return Self::from(res); } - res.extend_from_slice(unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) }); + res.extend_from_slice(unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) }); Self::from(res) } } @@ -9109,11 +9118,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_C2Tuple_BlockHashChannelMonitorZDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_C2Tuple_BlockHashChannelMonitorZDecodeErrorZPtr { err } }; Self { @@ -9126,7 +9135,7 @@ impl From CResult_NoneLightningErrorZ { CResult_NoneLightningErrorZ { contents: CResult_NoneLightningErrorZPtr { - result: std::ptr::null_mut(), + result: core::ptr::null_mut(), }, result_ok: true, } @@ -9184,11 +9193,11 @@ impl From) -> Self { let contents = if o.result_ok { let _ = unsafe { Box::from_raw(o.contents.result) }; - o.contents.result = std::ptr::null_mut(); - CResult_NoneLightningErrorZPtr { result: std::ptr::null_mut() } + o.contents.result = core::ptr::null_mut(); + CResult_NoneLightningErrorZPtr { result: core::ptr::null_mut() } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_NoneLightningErrorZPtr { err } }; Self { @@ -9201,7 +9210,7 @@ impl Clone for CResult_NoneLightningErrorZ { fn clone(&self) -> Self { if self.result_ok { Self { result_ok: true, contents: CResult_NoneLightningErrorZPtr { - result: std::ptr::null_mut() + result: core::ptr::null_mut() } } } else { Self { result_ok: false, contents: CResult_NoneLightningErrorZPtr { @@ -9257,13 +9266,13 @@ pub struct CVec_C2Tuple_PublicKeyTypeZZ { impl CVec_C2Tuple_PublicKeyTypeZZ { #[allow(unused)] pub(crate) fn into_rust(&mut self) -> Vec { if self.datalen == 0 { return Vec::new(); } - let ret = unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); - self.data = std::ptr::null_mut(); + let ret = unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); + self.data = core::ptr::null_mut(); self.datalen = 0; ret } #[allow(unused)] pub(crate) fn as_slice(&self) -> &[crate::c_types::derived::C2Tuple_PublicKeyTypeZ] { - unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) } + unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) } } } impl From> for CVec_C2Tuple_PublicKeyTypeZZ { @@ -9279,7 +9288,7 @@ pub extern "C" fn CVec_C2Tuple_PublicKeyTypeZZ_free(_res: CVec_C2Tuple_PublicKey impl Drop for CVec_C2Tuple_PublicKeyTypeZZ { fn drop(&mut self) { if self.datalen == 0 { return; } - unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }; + unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }; } } #[repr(C)] @@ -9348,11 +9357,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_boolLightningErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_boolLightningErrorZPtr { err } }; Self { @@ -9437,13 +9446,13 @@ pub struct CVec_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ { impl CVec_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ { #[allow(unused)] pub(crate) fn into_rust(&mut self) -> Vec { if self.datalen == 0 { return Vec::new(); } - let ret = unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); - self.data = std::ptr::null_mut(); + let ret = unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); + self.data = core::ptr::null_mut(); self.datalen = 0; ret } #[allow(unused)] pub(crate) fn as_slice(&self) -> &[crate::c_types::derived::C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZ] { - unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) } + unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) } } } impl From> for CVec_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ { @@ -9459,14 +9468,14 @@ pub extern "C" fn CVec_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ_f impl Drop for CVec_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ { fn drop(&mut self) { if self.datalen == 0 { return; } - unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }; + unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }; } } impl Clone for CVec_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ { fn clone(&self) -> Self { let mut res = Vec::new(); if self.datalen == 0 { return Self::from(res); } - res.extend_from_slice(unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) }); + res.extend_from_slice(unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) }); Self::from(res) } } @@ -9483,13 +9492,13 @@ pub struct CVec_NodeAnnouncementZ { impl CVec_NodeAnnouncementZ { #[allow(unused)] pub(crate) fn into_rust(&mut self) -> Vec { if self.datalen == 0 { return Vec::new(); } - let ret = unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); - self.data = std::ptr::null_mut(); + let ret = unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); + self.data = core::ptr::null_mut(); self.datalen = 0; ret } #[allow(unused)] pub(crate) fn as_slice(&self) -> &[crate::lightning::ln::msgs::NodeAnnouncement] { - unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) } + unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) } } } impl From> for CVec_NodeAnnouncementZ { @@ -9505,14 +9514,14 @@ pub extern "C" fn CVec_NodeAnnouncementZ_free(_res: CVec_NodeAnnouncementZ) { } impl Drop for CVec_NodeAnnouncementZ { fn drop(&mut self) { if self.datalen == 0 { return; } - unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }; + unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }; } } impl Clone for CVec_NodeAnnouncementZ { fn clone(&self) -> Self { let mut res = Vec::new(); if self.datalen == 0 { return Self::from(res); } - res.extend_from_slice(unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) }); + res.extend_from_slice(unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) }); Self::from(res) } } @@ -9529,13 +9538,13 @@ pub struct CVec_PublicKeyZ { impl CVec_PublicKeyZ { #[allow(unused)] pub(crate) fn into_rust(&mut self) -> Vec { if self.datalen == 0 { return Vec::new(); } - let ret = unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); - self.data = std::ptr::null_mut(); + let ret = unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); + self.data = core::ptr::null_mut(); self.datalen = 0; ret } #[allow(unused)] pub(crate) fn as_slice(&self) -> &[crate::c_types::PublicKey] { - unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) } + unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) } } } impl From> for CVec_PublicKeyZ { @@ -9551,14 +9560,14 @@ pub extern "C" fn CVec_PublicKeyZ_free(_res: CVec_PublicKeyZ) { } impl Drop for CVec_PublicKeyZ { fn drop(&mut self) { if self.datalen == 0 { return; } - unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }; + unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }; } } impl Clone for CVec_PublicKeyZ { fn clone(&self) -> Self { let mut res = Vec::new(); if self.datalen == 0 { return Self::from(res); } - res.extend_from_slice(unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) }); + res.extend_from_slice(unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) }); Self::from(res) } } @@ -9628,11 +9637,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_CVec_u8ZPeerHandleErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_CVec_u8ZPeerHandleErrorZPtr { err } }; Self { @@ -9662,7 +9671,7 @@ pub extern "C" fn CResult_CVec_u8ZPeerHandleErrorZ_clone(orig: &CResult_CVec_u8Z /// The contents of CResult_NonePeerHandleErrorZ pub union CResult_NonePeerHandleErrorZPtr { /// Note that this value is always NULL, as there are no contents in the OK variant - pub result: *mut std::ffi::c_void, + pub result: *mut core::ffi::c_void, /// A pointer to the contents in the error state. /// Reading from this pointer when `result_ok` is set is undefined. pub err: *mut crate::lightning::ln::peer_handler::PeerHandleError, @@ -9683,7 +9692,7 @@ pub struct CResult_NonePeerHandleErrorZ { pub extern "C" fn CResult_NonePeerHandleErrorZ_ok() -> CResult_NonePeerHandleErrorZ { CResult_NonePeerHandleErrorZ { contents: CResult_NonePeerHandleErrorZPtr { - result: std::ptr::null_mut(), + result: core::ptr::null_mut(), }, result_ok: true, } @@ -9720,11 +9729,11 @@ impl From) -> Self { let contents = if o.result_ok { let _ = unsafe { Box::from_raw(o.contents.result) }; - o.contents.result = std::ptr::null_mut(); - CResult_NonePeerHandleErrorZPtr { result: std::ptr::null_mut() } + o.contents.result = core::ptr::null_mut(); + CResult_NonePeerHandleErrorZPtr { result: core::ptr::null_mut() } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_NonePeerHandleErrorZPtr { err } }; Self { @@ -9737,7 +9746,7 @@ impl Clone for CResult_NonePeerHandleErrorZ { fn clone(&self) -> Self { if self.result_ok { Self { result_ok: true, contents: CResult_NonePeerHandleErrorZPtr { - result: std::ptr::null_mut() + result: core::ptr::null_mut() } } } else { Self { result_ok: false, contents: CResult_NonePeerHandleErrorZPtr { @@ -9816,11 +9825,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_boolPeerHandleErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_boolPeerHandleErrorZPtr { err } }; Self { @@ -9912,11 +9921,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_NodeIdDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_NodeIdDecodeErrorZPtr { err } }; Self { @@ -10008,11 +10017,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_COption_NetworkUpdateZDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_COption_NetworkUpdateZDecodeErrorZPtr { err } }; Self { @@ -10136,11 +10145,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_DirectionalChannelInfoDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_DirectionalChannelInfoDecodeErrorZPtr { err } }; Self { @@ -10232,11 +10241,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_ChannelInfoDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_ChannelInfoDecodeErrorZPtr { err } }; Self { @@ -10328,11 +10337,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_RoutingFeesDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_RoutingFeesDecodeErrorZPtr { err } }; Self { @@ -10424,11 +10433,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_NodeAnnouncementInfoDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_NodeAnnouncementInfoDecodeErrorZPtr { err } }; Self { @@ -10467,13 +10476,13 @@ pub struct CVec_u64Z { impl CVec_u64Z { #[allow(unused)] pub(crate) fn into_rust(&mut self) -> Vec { if self.datalen == 0 { return Vec::new(); } - let ret = unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); - self.data = std::ptr::null_mut(); + let ret = unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); + self.data = core::ptr::null_mut(); self.datalen = 0; ret } #[allow(unused)] pub(crate) fn as_slice(&self) -> &[u64] { - unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) } + unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) } } } impl From> for CVec_u64Z { @@ -10489,14 +10498,14 @@ pub extern "C" fn CVec_u64Z_free(_res: CVec_u64Z) { } impl Drop for CVec_u64Z { fn drop(&mut self) { if self.datalen == 0 { return; } - unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }; + unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }; } } impl Clone for CVec_u64Z { fn clone(&self) -> Self { let mut res = Vec::new(); if self.datalen == 0 { return Self::from(res); } - res.extend_from_slice(unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) }); + res.extend_from_slice(unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) }); Self::from(res) } } @@ -10566,11 +10575,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_NodeInfoDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_NodeInfoDecodeErrorZPtr { err } }; Self { @@ -10662,11 +10671,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_NetworkGraphDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_NetworkGraphDecodeErrorZPtr { err } }; Self { @@ -10795,11 +10804,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_NetAddressDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_NetAddressDecodeErrorZPtr { err } }; Self { @@ -10838,13 +10847,13 @@ pub struct CVec_UpdateAddHTLCZ { impl CVec_UpdateAddHTLCZ { #[allow(unused)] pub(crate) fn into_rust(&mut self) -> Vec { if self.datalen == 0 { return Vec::new(); } - let ret = unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); - self.data = std::ptr::null_mut(); + let ret = unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); + self.data = core::ptr::null_mut(); self.datalen = 0; ret } #[allow(unused)] pub(crate) fn as_slice(&self) -> &[crate::lightning::ln::msgs::UpdateAddHTLC] { - unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) } + unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) } } } impl From> for CVec_UpdateAddHTLCZ { @@ -10860,14 +10869,14 @@ pub extern "C" fn CVec_UpdateAddHTLCZ_free(_res: CVec_UpdateAddHTLCZ) { } impl Drop for CVec_UpdateAddHTLCZ { fn drop(&mut self) { if self.datalen == 0 { return; } - unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }; + unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }; } } impl Clone for CVec_UpdateAddHTLCZ { fn clone(&self) -> Self { let mut res = Vec::new(); if self.datalen == 0 { return Self::from(res); } - res.extend_from_slice(unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) }); + res.extend_from_slice(unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) }); Self::from(res) } } @@ -10884,13 +10893,13 @@ pub struct CVec_UpdateFulfillHTLCZ { impl CVec_UpdateFulfillHTLCZ { #[allow(unused)] pub(crate) fn into_rust(&mut self) -> Vec { if self.datalen == 0 { return Vec::new(); } - let ret = unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); - self.data = std::ptr::null_mut(); + let ret = unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); + self.data = core::ptr::null_mut(); self.datalen = 0; ret } #[allow(unused)] pub(crate) fn as_slice(&self) -> &[crate::lightning::ln::msgs::UpdateFulfillHTLC] { - unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) } + unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) } } } impl From> for CVec_UpdateFulfillHTLCZ { @@ -10906,14 +10915,14 @@ pub extern "C" fn CVec_UpdateFulfillHTLCZ_free(_res: CVec_UpdateFulfillHTLCZ) { impl Drop for CVec_UpdateFulfillHTLCZ { fn drop(&mut self) { if self.datalen == 0 { return; } - unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }; + unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }; } } impl Clone for CVec_UpdateFulfillHTLCZ { fn clone(&self) -> Self { let mut res = Vec::new(); if self.datalen == 0 { return Self::from(res); } - res.extend_from_slice(unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) }); + res.extend_from_slice(unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) }); Self::from(res) } } @@ -10930,13 +10939,13 @@ pub struct CVec_UpdateFailHTLCZ { impl CVec_UpdateFailHTLCZ { #[allow(unused)] pub(crate) fn into_rust(&mut self) -> Vec { if self.datalen == 0 { return Vec::new(); } - let ret = unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); - self.data = std::ptr::null_mut(); + let ret = unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); + self.data = core::ptr::null_mut(); self.datalen = 0; ret } #[allow(unused)] pub(crate) fn as_slice(&self) -> &[crate::lightning::ln::msgs::UpdateFailHTLC] { - unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) } + unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) } } } impl From> for CVec_UpdateFailHTLCZ { @@ -10952,14 +10961,14 @@ pub extern "C" fn CVec_UpdateFailHTLCZ_free(_res: CVec_UpdateFailHTLCZ) { } impl Drop for CVec_UpdateFailHTLCZ { fn drop(&mut self) { if self.datalen == 0 { return; } - unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }; + unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }; } } impl Clone for CVec_UpdateFailHTLCZ { fn clone(&self) -> Self { let mut res = Vec::new(); if self.datalen == 0 { return Self::from(res); } - res.extend_from_slice(unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) }); + res.extend_from_slice(unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) }); Self::from(res) } } @@ -10976,13 +10985,13 @@ pub struct CVec_UpdateFailMalformedHTLCZ { impl CVec_UpdateFailMalformedHTLCZ { #[allow(unused)] pub(crate) fn into_rust(&mut self) -> Vec { if self.datalen == 0 { return Vec::new(); } - let ret = unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); - self.data = std::ptr::null_mut(); + let ret = unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); + self.data = core::ptr::null_mut(); self.datalen = 0; ret } #[allow(unused)] pub(crate) fn as_slice(&self) -> &[crate::lightning::ln::msgs::UpdateFailMalformedHTLC] { - unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) } + unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) } } } impl From> for CVec_UpdateFailMalformedHTLCZ { @@ -10998,14 +11007,14 @@ pub extern "C" fn CVec_UpdateFailMalformedHTLCZ_free(_res: CVec_UpdateFailMalfor impl Drop for CVec_UpdateFailMalformedHTLCZ { fn drop(&mut self) { if self.datalen == 0 { return; } - unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }; + unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }; } } impl Clone for CVec_UpdateFailMalformedHTLCZ { fn clone(&self) -> Self { let mut res = Vec::new(); if self.datalen == 0 { return Self::from(res); } - res.extend_from_slice(unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) }); + res.extend_from_slice(unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) }); Self::from(res) } } @@ -11075,11 +11084,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_AcceptChannelDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_AcceptChannelDecodeErrorZPtr { err } }; Self { @@ -11171,11 +11180,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_AnnouncementSignaturesDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_AnnouncementSignaturesDecodeErrorZPtr { err } }; Self { @@ -11267,11 +11276,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_ChannelReestablishDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_ChannelReestablishDecodeErrorZPtr { err } }; Self { @@ -11363,11 +11372,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_ClosingSignedDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_ClosingSignedDecodeErrorZPtr { err } }; Self { @@ -11459,11 +11468,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_ClosingSignedFeeRangeDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_ClosingSignedFeeRangeDecodeErrorZPtr { err } }; Self { @@ -11555,11 +11564,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_CommitmentSignedDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_CommitmentSignedDecodeErrorZPtr { err } }; Self { @@ -11651,11 +11660,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_FundingCreatedDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_FundingCreatedDecodeErrorZPtr { err } }; Self { @@ -11747,11 +11756,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_FundingSignedDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_FundingSignedDecodeErrorZPtr { err } }; Self { @@ -11843,11 +11852,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_FundingLockedDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_FundingLockedDecodeErrorZPtr { err } }; Self { @@ -11939,11 +11948,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_InitDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_InitDecodeErrorZPtr { err } }; Self { @@ -12035,11 +12044,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_OpenChannelDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_OpenChannelDecodeErrorZPtr { err } }; Self { @@ -12131,11 +12140,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_RevokeAndACKDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_RevokeAndACKDecodeErrorZPtr { err } }; Self { @@ -12227,11 +12236,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_ShutdownDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_ShutdownDecodeErrorZPtr { err } }; Self { @@ -12323,11 +12332,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_UpdateFailHTLCDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_UpdateFailHTLCDecodeErrorZPtr { err } }; Self { @@ -12419,11 +12428,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_UpdateFailMalformedHTLCDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_UpdateFailMalformedHTLCDecodeErrorZPtr { err } }; Self { @@ -12515,11 +12524,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_UpdateFeeDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_UpdateFeeDecodeErrorZPtr { err } }; Self { @@ -12611,11 +12620,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_UpdateFulfillHTLCDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_UpdateFulfillHTLCDecodeErrorZPtr { err } }; Self { @@ -12707,11 +12716,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_UpdateAddHTLCDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_UpdateAddHTLCDecodeErrorZPtr { err } }; Self { @@ -12803,11 +12812,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_PingDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_PingDecodeErrorZPtr { err } }; Self { @@ -12899,11 +12908,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_PongDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_PongDecodeErrorZPtr { err } }; Self { @@ -12995,11 +13004,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_UnsignedChannelAnnouncementDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_UnsignedChannelAnnouncementDecodeErrorZPtr { err } }; Self { @@ -13091,11 +13100,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_ChannelAnnouncementDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_ChannelAnnouncementDecodeErrorZPtr { err } }; Self { @@ -13187,11 +13196,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_UnsignedChannelUpdateDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_UnsignedChannelUpdateDecodeErrorZPtr { err } }; Self { @@ -13283,11 +13292,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_ChannelUpdateDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_ChannelUpdateDecodeErrorZPtr { err } }; Self { @@ -13379,11 +13388,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_ErrorMessageDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_ErrorMessageDecodeErrorZPtr { err } }; Self { @@ -13475,11 +13484,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_UnsignedNodeAnnouncementDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_UnsignedNodeAnnouncementDecodeErrorZPtr { err } }; Self { @@ -13571,11 +13580,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_NodeAnnouncementDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_NodeAnnouncementDecodeErrorZPtr { err } }; Self { @@ -13667,11 +13676,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_QueryShortChannelIdsDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_QueryShortChannelIdsDecodeErrorZPtr { err } }; Self { @@ -13763,11 +13772,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_ReplyShortChannelIdsEndDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_ReplyShortChannelIdsEndDecodeErrorZPtr { err } }; Self { @@ -13859,11 +13868,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_QueryChannelRangeDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_QueryChannelRangeDecodeErrorZPtr { err } }; Self { @@ -13955,11 +13964,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_ReplyChannelRangeDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_ReplyChannelRangeDecodeErrorZPtr { err } }; Self { @@ -14051,11 +14060,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_GossipTimestampFilterDecodeErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_GossipTimestampFilterDecodeErrorZPtr { err } }; Self { @@ -14147,11 +14156,11 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_InvoiceSignOrCreationErrorZPtr { result } } else { let err = unsafe { o.contents.err }; - unsafe { o.contents.err = std::ptr::null_mut(); } + unsafe { o.contents.err = core::ptr::null_mut(); } CResult_InvoiceSignOrCreationErrorZPtr { err } }; Self { @@ -14216,7 +14225,7 @@ pub union CResult_LockedChannelMonitorNoneZPtr { /// Reading from this pointer when `result_ok` is not set is undefined. pub result: *mut crate::lightning::chain::chainmonitor::LockedChannelMonitor, /// Note that this value is always NULL, as there are no contents in the Err variant - pub err: *mut std::ffi::c_void, + pub err: *mut core::ffi::c_void, } #[repr(C)] /// A CResult_LockedChannelMonitorNoneZ represents the result of a fallible operation, @@ -14244,7 +14253,7 @@ pub extern "C" fn CResult_LockedChannelMonitorNoneZ_ok(o: crate::lightning::chai pub extern "C" fn CResult_LockedChannelMonitorNoneZ_err() -> CResult_LockedChannelMonitorNoneZ { CResult_LockedChannelMonitorNoneZ { contents: CResult_LockedChannelMonitorNoneZPtr { - err: std::ptr::null_mut(), + err: core::ptr::null_mut(), }, result_ok: false, } @@ -14271,12 +14280,12 @@ impl From) -> Self { let contents = if o.result_ok { let result = unsafe { o.contents.result }; - unsafe { o.contents.result = std::ptr::null_mut() }; + unsafe { o.contents.result = core::ptr::null_mut() }; CResult_LockedChannelMonitorNoneZPtr { result } } else { let _ = unsafe { Box::from_raw(o.contents.err) }; - o.contents.err = std::ptr::null_mut(); - CResult_LockedChannelMonitorNoneZPtr { err: std::ptr::null_mut() } + o.contents.err = core::ptr::null_mut(); + CResult_LockedChannelMonitorNoneZPtr { err: core::ptr::null_mut() } }; Self { contents, @@ -14297,13 +14306,13 @@ pub struct CVec_OutPointZ { impl CVec_OutPointZ { #[allow(unused)] pub(crate) fn into_rust(&mut self) -> Vec { if self.datalen == 0 { return Vec::new(); } - let ret = unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); - self.data = std::ptr::null_mut(); + let ret = unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }.into(); + self.data = core::ptr::null_mut(); self.datalen = 0; ret } #[allow(unused)] pub(crate) fn as_slice(&self) -> &[crate::lightning::chain::transaction::OutPoint] { - unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) } + unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) } } } impl From> for CVec_OutPointZ { @@ -14319,14 +14328,14 @@ pub extern "C" fn CVec_OutPointZ_free(_res: CVec_OutPointZ) { } impl Drop for CVec_OutPointZ { fn drop(&mut self) { if self.datalen == 0 { return; } - unsafe { Box::from_raw(std::slice::from_raw_parts_mut(self.data, self.datalen)) }; + unsafe { Box::from_raw(core::slice::from_raw_parts_mut(self.data, self.datalen)) }; } } impl Clone for CVec_OutPointZ { fn clone(&self) -> Self { let mut res = Vec::new(); if self.datalen == 0 { return Self::from(res); } - res.extend_from_slice(unsafe { std::slice::from_raw_parts_mut(self.data, self.datalen) }); + res.extend_from_slice(unsafe { core::slice::from_raw_parts_mut(self.data, self.datalen) }); Self::from(res) } } diff --git a/lightning-c-bindings/src/lib.rs b/lightning-c-bindings/src/lib.rs index 907c366..a0beebd 100644 --- a/lightning-c-bindings/src/lib.rs +++ b/lightning-c-bindings/src/lib.rs @@ -16,6 +16,10 @@ #![allow(unused_parens)] #![allow(unused_unsafe)] #![allow(unused_braces)] +#![cfg_attr(not(feature = "std"), no_std)] +#[cfg(not(any(feature = "std", feature = "no-std")))] +compile_error!("at least one of the `std` or `no-std` features must be enabled"); +extern crate alloc; pub mod version; pub mod c_types; pub mod bitcoin; diff --git a/lightning-c-bindings/src/lightning/chain/chaininterface.rs b/lightning-c-bindings/src/lightning/chain/chaininterface.rs index b1c180b..7d8291d 100644 --- a/lightning-c-bindings/src/lightning/chain/chaininterface.rs +++ b/lightning-c-bindings/src/lightning/chain/chaininterface.rs @@ -12,11 +12,13 @@ //! Includes traits for monitoring and receiving notifications of new blocks and block //! disconnections, transaction broadcasting, and feerate information requests. -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}; /// An interface to send a transaction to the Bitcoin network. #[repr(C)] @@ -50,7 +52,7 @@ impl rustBroadcasterInterface for BroadcasterInterface { // We're essentially a pointer already, or at least a set of pointers, so allow us to be used // directly as a Deref trait in higher-level structs: -impl std::ops::Deref for BroadcasterInterface { +impl core::ops::Deref for BroadcasterInterface { type Target = Self; fn deref(&self) -> &Self { self @@ -182,7 +184,7 @@ impl rustFeeEstimator for FeeEstimator { // We're essentially a pointer already, or at least a set of pointers, so allow us to be used // directly as a Deref trait in higher-level structs: -impl std::ops::Deref for FeeEstimator { +impl core::ops::Deref for FeeEstimator { type Target = Self; fn deref(&self) -> &Self { self diff --git a/lightning-c-bindings/src/lightning/chain/chainmonitor.rs b/lightning-c-bindings/src/lightning/chain/chainmonitor.rs index 0b00b58..a0e8bcc 100644 --- a/lightning-c-bindings/src/lightning/chain/chainmonitor.rs +++ b/lightning-c-bindings/src/lightning/chain/chainmonitor.rs @@ -22,11 +22,13 @@ //! events. The remote server would make use of [`ChainMonitor`] for block processing and for //! servicing [`ChannelMonitor`] updates from the client. -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}; use lightning::chain::chainmonitor::MonitorUpdateId as nativeMonitorUpdateIdImport; @@ -75,14 +77,14 @@ impl MonitorUpdateId { pub(crate) fn take_inner(mut self) -> *mut nativeMonitorUpdateId { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } impl Clone for MonitorUpdateId { fn clone(&self) -> Self { Self { - inner: if <*mut nativeMonitorUpdateId>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeMonitorUpdateId>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -102,11 +104,11 @@ pub extern "C" fn MonitorUpdateId_clone(orig: &MonitorUpdateId) -> MonitorUpdate #[no_mangle] pub extern "C" fn MonitorUpdateId_hash(o: &MonitorUpdateId) -> u64 { if o.inner.is_null() { return 0; } - // Note that we'd love to use std::collections::hash_map::DefaultHasher but it's not in core + // Note that we'd love to use alloc::collections::hash_map::DefaultHasher but it's not in core #[allow(deprecated)] let mut hasher = core::hash::SipHasher::new(); - std::hash::Hash::hash(o.get_native_ref(), &mut hasher); - std::hash::Hasher::finish(&hasher) + core::hash::Hash::hash(o.get_native_ref(), &mut hasher); + core::hash::Hasher::finish(&hasher) } /// Checks if two MonitorUpdateIds contain equal inner contents. /// This ignores pointers and is_owned flags and looks at the values in fields. @@ -219,7 +221,7 @@ impl rustPersist for Persist { local_ret } fn update_persisted_channel(&self, mut channel_id: lightning::chain::transaction::OutPoint, mut update: &Option, mut data: &lightning::chain::channelmonitor::ChannelMonitor, mut update_id: lightning::chain::chainmonitor::MonitorUpdateId) -> Result<(), lightning::chain::ChannelMonitorUpdateErr> { - let mut local_update = &crate::lightning::chain::channelmonitor::ChannelMonitorUpdate { inner: unsafe { (if update.is_none() { std::ptr::null() } else { ObjOps::nonnull_ptr_to_inner( { (update.as_ref().unwrap()) }) } as *const lightning::chain::channelmonitor::ChannelMonitorUpdate<>) as *mut _ }, is_owned: false }; + let mut local_update = &crate::lightning::chain::channelmonitor::ChannelMonitorUpdate { inner: unsafe { (if update.is_none() { core::ptr::null() } else { ObjOps::nonnull_ptr_to_inner( { (update.as_ref().unwrap()) }) } as *const lightning::chain::channelmonitor::ChannelMonitorUpdate<>) as *mut _ }, is_owned: false }; let mut ret = (self.update_persisted_channel)(self.this_arg, crate::lightning::chain::transaction::OutPoint { inner: ObjOps::heap_alloc(channel_id), is_owned: true }, local_update, &crate::lightning::chain::channelmonitor::ChannelMonitor { inner: unsafe { ObjOps::nonnull_ptr_to_inner((data as *const lightning::chain::channelmonitor::ChannelMonitor<_, >) as *mut _) }, is_owned: false }, crate::lightning::chain::chainmonitor::MonitorUpdateId { inner: ObjOps::heap_alloc(update_id), is_owned: true }); let mut local_ret = match ret.result_ok { true => Ok( { () /*(*unsafe { Box::from_raw(<*mut _>::take_ptr(&mut ret.contents.result)) })*/ }), false => Err( { (*unsafe { Box::from_raw(<*mut _>::take_ptr(&mut ret.contents.err)) }).into_native() })}; local_ret @@ -228,7 +230,7 @@ impl rustPersist for Persist { // We're essentially a pointer already, or at least a set of pointers, so allow us to be used // directly as a Deref trait in higher-level structs: -impl std::ops::Deref for Persist { +impl core::ops::Deref for Persist { type Target = Self; fn deref(&self) -> &Self { self @@ -294,7 +296,7 @@ impl LockedChannelMonitor { pub(crate) fn take_inner(mut self) -> *mut nativeLockedChannelMonitor { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -353,7 +355,7 @@ impl ChainMonitor { pub(crate) fn take_inner(mut self) -> *mut nativeChainMonitor { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -441,7 +443,7 @@ impl From for crate::lightning::chain::Listen { let mut rust_obj = ChainMonitor { inner: ObjOps::heap_alloc(obj), is_owned: true }; let mut ret = ChainMonitor_as_Listen(&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(); + rust_obj.inner = core::ptr::null_mut(); ret.free = Some(ChainMonitor_free_void); ret } @@ -470,7 +472,7 @@ impl From for crate::lightning::chain::Confirm { let mut rust_obj = ChainMonitor { inner: ObjOps::heap_alloc(obj), is_owned: true }; let mut ret = ChainMonitor_as_Confirm(&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(); + rust_obj.inner = core::ptr::null_mut(); ret.free = Some(ChainMonitor_free_void); ret } @@ -511,7 +513,7 @@ impl From for crate::lightning::chain::Watch { let mut rust_obj = ChainMonitor { inner: ObjOps::heap_alloc(obj), is_owned: true }; let mut ret = ChainMonitor_as_Watch(&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(); + rust_obj.inner = core::ptr::null_mut(); ret.free = Some(ChainMonitor_free_void); ret } @@ -553,7 +555,7 @@ impl From for crate::lightning::util::events::EventsProvider let mut rust_obj = ChainMonitor { inner: ObjOps::heap_alloc(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(); + rust_obj.inner = core::ptr::null_mut(); ret.free = Some(ChainMonitor_free_void); ret } diff --git a/lightning-c-bindings/src/lightning/chain/channelmonitor.rs b/lightning-c-bindings/src/lightning/chain/channelmonitor.rs index 1484bbf..da82fb9 100644 --- a/lightning-c-bindings/src/lightning/chain/channelmonitor.rs +++ b/lightning-c-bindings/src/lightning/chain/channelmonitor.rs @@ -19,11 +19,13 @@ //! security-domain-separated system design, you should consider having multiple paths for //! ChannelMonitors to get out of the HSM and onto monitoring devices. -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}; use lightning::chain::channelmonitor::ChannelMonitorUpdate as nativeChannelMonitorUpdateImport; @@ -73,7 +75,7 @@ impl ChannelMonitorUpdate { pub(crate) fn take_inner(mut self) -> *mut nativeChannelMonitorUpdate { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -111,7 +113,7 @@ pub extern "C" fn ChannelMonitorUpdate_set_update_id(this_ptr: &mut ChannelMonit impl Clone for ChannelMonitorUpdate { fn clone(&self) -> Self { Self { - inner: if <*mut nativeChannelMonitorUpdate>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeChannelMonitorUpdate>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -391,14 +393,14 @@ impl HTLCUpdate { pub(crate) fn take_inner(mut self) -> *mut nativeHTLCUpdate { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } impl Clone for HTLCUpdate { fn clone(&self) -> Self { Self { - inner: if <*mut nativeHTLCUpdate>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeHTLCUpdate>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -729,7 +731,7 @@ impl ChannelMonitor { pub(crate) fn take_inner(mut self) -> *mut nativeChannelMonitor { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } diff --git a/lightning-c-bindings/src/lightning/chain/keysinterface.rs b/lightning-c-bindings/src/lightning/chain/keysinterface.rs index 0841758..9ee852b 100644 --- a/lightning-c-bindings/src/lightning/chain/keysinterface.rs +++ b/lightning-c-bindings/src/lightning/chain/keysinterface.rs @@ -10,11 +10,13 @@ //! spendable on-chain outputs which the user owns and is responsible for using just as any other //! on-chain output which is theirs. -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}; use lightning::chain::keysinterface::DelayedPaymentOutputDescriptor as nativeDelayedPaymentOutputDescriptorImport; @@ -64,7 +66,7 @@ impl DelayedPaymentOutputDescriptor { pub(crate) fn take_inner(mut self) -> *mut nativeDelayedPaymentOutputDescriptor { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -164,7 +166,7 @@ pub extern "C" fn DelayedPaymentOutputDescriptor_new(mut outpoint_arg: crate::li impl Clone for DelayedPaymentOutputDescriptor { fn clone(&self) -> Self { Self { - inner: if <*mut nativeDelayedPaymentOutputDescriptor>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeDelayedPaymentOutputDescriptor>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -244,7 +246,7 @@ impl StaticPaymentOutputDescriptor { pub(crate) fn take_inner(mut self) -> *mut nativeStaticPaymentOutputDescriptor { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -304,7 +306,7 @@ pub extern "C" fn StaticPaymentOutputDescriptor_new(mut outpoint_arg: crate::lig impl Clone for StaticPaymentOutputDescriptor { fn clone(&self) -> Self { Self { - inner: if <*mut nativeStaticPaymentOutputDescriptor>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeStaticPaymentOutputDescriptor>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -790,7 +792,7 @@ impl rustBaseSign for BaseSign { // We're essentially a pointer already, or at least a set of pointers, so allow us to be used // directly as a Deref trait in higher-level structs: -impl std::ops::Deref for BaseSign { +impl core::ops::Deref for BaseSign { type Target = Self; fn deref(&self) -> &Self { self @@ -909,7 +911,7 @@ impl lightning::chain::keysinterface::BaseSign for Sign { } } impl lightning::util::ser::Writeable for Sign { - fn write(&self, w: &mut W) -> Result<(), ::std::io::Error> { + fn write(&self, w: &mut W) -> Result<(), crate::c_types::io::Error> { let vec = (self.write)(self.this_arg); w.write_all(vec.as_slice()) } @@ -933,7 +935,7 @@ impl rustSign for Sign { // We're essentially a pointer already, or at least a set of pointers, so allow us to be used // directly as a Deref trait in higher-level structs: -impl std::ops::Deref for Sign { +impl core::ops::Deref for Sign { type Target = Self; fn deref(&self) -> &Self { self @@ -1069,7 +1071,7 @@ impl rustKeysInterface for KeysInterface { // We're essentially a pointer already, or at least a set of pointers, so allow us to be used // directly as a Deref trait in higher-level structs: -impl std::ops::Deref for KeysInterface { +impl core::ops::Deref for KeysInterface { type Target = Self; fn deref(&self) -> &Self { self @@ -1135,7 +1137,7 @@ impl InMemorySigner { pub(crate) fn take_inner(mut self) -> *mut nativeInMemorySigner { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -1208,7 +1210,7 @@ pub extern "C" fn InMemorySigner_set_commitment_seed(this_ptr: &mut InMemorySign impl Clone for InMemorySigner { fn clone(&self) -> Self { Self { - inner: if <*mut nativeInMemorySigner>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeInMemorySigner>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -1333,7 +1335,7 @@ impl From for crate::lightning::chain::keysinterface::Base let mut rust_obj = InMemorySigner { inner: ObjOps::heap_alloc(obj), is_owned: true }; let mut ret = InMemorySigner_as_BaseSign(&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(); + rust_obj.inner = core::ptr::null_mut(); ret.free = Some(InMemorySigner_free_void); ret } @@ -1349,7 +1351,7 @@ pub extern "C" fn InMemorySigner_as_BaseSign(this_arg: &InMemorySigner) -> crate release_commitment_secret: InMemorySigner_BaseSign_release_commitment_secret, validate_holder_commitment: InMemorySigner_BaseSign_validate_holder_commitment, - pubkeys: crate::lightning::ln::chan_utils::ChannelPublicKeys { inner: std::ptr::null_mut(), is_owned: true }, + pubkeys: crate::lightning::ln::chan_utils::ChannelPublicKeys { inner: core::ptr::null_mut(), is_owned: true }, set_pubkeys: Some(InMemorySigner_BaseSign_set_pubkeys), channel_keys_id: InMemorySigner_BaseSign_channel_keys_id, sign_counterparty_commitment: InMemorySigner_BaseSign_sign_counterparty_commitment, @@ -1454,7 +1456,7 @@ impl From for crate::lightning::chain::keysinterface::Sign let mut rust_obj = InMemorySigner { inner: ObjOps::heap_alloc(obj), is_owned: true }; let mut ret = InMemorySigner_as_Sign(&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(); + rust_obj.inner = core::ptr::null_mut(); ret.free = Some(InMemorySigner_free_void); ret } @@ -1473,7 +1475,7 @@ pub extern "C" fn InMemorySigner_as_Sign(this_arg: &InMemorySigner) -> crate::li release_commitment_secret: InMemorySigner_BaseSign_release_commitment_secret, validate_holder_commitment: InMemorySigner_BaseSign_validate_holder_commitment, - pubkeys: crate::lightning::ln::chan_utils::ChannelPublicKeys { inner: std::ptr::null_mut(), is_owned: true }, + pubkeys: crate::lightning::ln::chan_utils::ChannelPublicKeys { inner: core::ptr::null_mut(), is_owned: true }, set_pubkeys: Some(InMemorySigner_BaseSign_set_pubkeys), channel_keys_id: InMemorySigner_BaseSign_channel_keys_id, sign_counterparty_commitment: InMemorySigner_BaseSign_sign_counterparty_commitment, @@ -1567,7 +1569,7 @@ impl KeysManager { pub(crate) fn take_inner(mut self) -> *mut nativeKeysManager { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -1635,7 +1637,7 @@ impl From for crate::lightning::chain::keysinterface::KeysInt let mut rust_obj = KeysManager { inner: ObjOps::heap_alloc(obj), is_owned: true }; let mut ret = KeysManager_as_KeysInterface(&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(); + rust_obj.inner = core::ptr::null_mut(); ret.free = Some(KeysManager_free_void); ret } diff --git a/lightning-c-bindings/src/lightning/chain/mod.rs b/lightning-c-bindings/src/lightning/chain/mod.rs index 33bc264..c5e857a 100644 --- a/lightning-c-bindings/src/lightning/chain/mod.rs +++ b/lightning-c-bindings/src/lightning/chain/mod.rs @@ -8,11 +8,13 @@ //! Structs and traits which allow other parts of rust-lightning to interact with the blockchain. -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}; pub mod chaininterface; pub mod chainmonitor; @@ -21,20 +23,24 @@ pub mod transaction; pub mod keysinterface; mod onchaintx { -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}; } mod package { -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}; } @@ -84,14 +90,14 @@ impl BestBlock { pub(crate) fn take_inner(mut self) -> *mut nativeBestBlock { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } impl Clone for BestBlock { fn clone(&self) -> Self { Self { - inner: if <*mut nativeBestBlock>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeBestBlock>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -234,7 +240,7 @@ impl rustAccess for Access { // We're essentially a pointer already, or at least a set of pointers, so allow us to be used // directly as a Deref trait in higher-level structs: -impl std::ops::Deref for Access { +impl core::ops::Deref for Access { type Target = Self; fn deref(&self) -> &Self { self @@ -296,7 +302,7 @@ impl rustListen for Listen { // We're essentially a pointer already, or at least a set of pointers, so allow us to be used // directly as a Deref trait in higher-level structs: -impl std::ops::Deref for Listen { +impl core::ops::Deref for Listen { type Target = Self; fn deref(&self) -> &Self { self @@ -433,7 +439,7 @@ impl rustConfirm for Confirm { // We're essentially a pointer already, or at least a set of pointers, so allow us to be used // directly as a Deref trait in higher-level structs: -impl std::ops::Deref for Confirm { +impl core::ops::Deref for Confirm { type Target = Self; fn deref(&self) -> &Self { self @@ -654,7 +660,7 @@ impl rustWatch for Watch { // We're essentially a pointer already, or at least a set of pointers, so allow us to be used // directly as a Deref trait in higher-level structs: -impl std::ops::Deref for Watch { +impl core::ops::Deref for Watch { type Target = Self; fn deref(&self) -> &Self { self @@ -739,7 +745,7 @@ impl rustFilter for Filter { // We're essentially a pointer already, or at least a set of pointers, so allow us to be used // directly as a Deref trait in higher-level structs: -impl std::ops::Deref for Filter { +impl core::ops::Deref for Filter { type Target = Self; fn deref(&self) -> &Self { self @@ -812,7 +818,7 @@ impl WatchedOutput { pub(crate) fn take_inner(mut self) -> *mut nativeWatchedOutput { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -869,7 +875,7 @@ pub extern "C" fn WatchedOutput_new(mut block_hash_arg: crate::c_types::ThirtyTw impl Clone for WatchedOutput { fn clone(&self) -> Self { Self { - inner: if <*mut nativeWatchedOutput>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeWatchedOutput>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -889,9 +895,9 @@ pub extern "C" fn WatchedOutput_clone(orig: &WatchedOutput) -> WatchedOutput { #[no_mangle] pub extern "C" fn WatchedOutput_hash(o: &WatchedOutput) -> u64 { if o.inner.is_null() { return 0; } - // Note that we'd love to use std::collections::hash_map::DefaultHasher but it's not in core + // Note that we'd love to use alloc::collections::hash_map::DefaultHasher but it's not in core #[allow(deprecated)] let mut hasher = core::hash::SipHasher::new(); - std::hash::Hash::hash(o.get_native_ref(), &mut hasher); - std::hash::Hasher::finish(&hasher) + core::hash::Hash::hash(o.get_native_ref(), &mut hasher); + core::hash::Hasher::finish(&hasher) } diff --git a/lightning-c-bindings/src/lightning/chain/transaction.rs b/lightning-c-bindings/src/lightning/chain/transaction.rs index 59cf6d1..c5d01ea 100644 --- a/lightning-c-bindings/src/lightning/chain/transaction.rs +++ b/lightning-c-bindings/src/lightning/chain/transaction.rs @@ -8,11 +8,13 @@ //! Types describing on-chain transactions. -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}; use lightning::chain::transaction::OutPoint as nativeOutPointImport; @@ -64,7 +66,7 @@ impl OutPoint { pub(crate) fn take_inner(mut self) -> *mut nativeOutPoint { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -102,7 +104,7 @@ pub extern "C" fn OutPoint_new(mut txid_arg: crate::c_types::ThirtyTwoBytes, mut impl Clone for OutPoint { fn clone(&self) -> Self { Self { - inner: if <*mut nativeOutPoint>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeOutPoint>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -131,11 +133,11 @@ pub extern "C" fn OutPoint_eq(a: &OutPoint, b: &OutPoint) -> bool { #[no_mangle] pub extern "C" fn OutPoint_hash(o: &OutPoint) -> u64 { if o.inner.is_null() { return 0; } - // Note that we'd love to use std::collections::hash_map::DefaultHasher but it's not in core + // Note that we'd love to use alloc::collections::hash_map::DefaultHasher but it's not in core #[allow(deprecated)] let mut hasher = core::hash::SipHasher::new(); - std::hash::Hash::hash(o.get_native_ref(), &mut hasher); - std::hash::Hasher::finish(&hasher) + core::hash::Hash::hash(o.get_native_ref(), &mut hasher); + core::hash::Hasher::finish(&hasher) } /// Convert an `OutPoint` to a lightning channel id. #[must_use] diff --git a/lightning-c-bindings/src/lightning/ln/chan_utils.rs b/lightning-c-bindings/src/lightning/ln/chan_utils.rs index 02f7f7b..9874c87 100644 --- a/lightning-c-bindings/src/lightning/ln/chan_utils.rs +++ b/lightning-c-bindings/src/lightning/ln/chan_utils.rs @@ -9,11 +9,13 @@ //! Various utilities for building scripts and deriving keys related to channels. These are //! largely of interest for those implementing chain::keysinterface::Sign message signing by hand. -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}; /// Gets the weight for an HTLC-Success transaction. #[no_mangle] @@ -159,7 +161,7 @@ impl TxCreationKeys { pub(crate) fn take_inner(mut self) -> *mut nativeTxCreationKeys { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -237,7 +239,7 @@ pub extern "C" fn TxCreationKeys_new(mut per_commitment_point_arg: crate::c_type impl Clone for TxCreationKeys { fn clone(&self) -> Self { Self { - inner: if <*mut nativeTxCreationKeys>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeTxCreationKeys>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -316,7 +318,7 @@ impl ChannelPublicKeys { pub(crate) fn take_inner(mut self) -> *mut nativeChannelPublicKeys { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -408,7 +410,7 @@ pub extern "C" fn ChannelPublicKeys_new(mut funding_pubkey_arg: crate::c_types:: impl Clone for ChannelPublicKeys { fn clone(&self) -> Self { Self { - inner: if <*mut nativeChannelPublicKeys>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeChannelPublicKeys>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -520,7 +522,7 @@ impl HTLCOutputInCommitment { pub(crate) fn take_inner(mut self) -> *mut nativeHTLCOutputInCommitment { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -609,7 +611,7 @@ pub extern "C" fn HTLCOutputInCommitment_new(mut offered_arg: bool, mut amount_m impl Clone for HTLCOutputInCommitment { fn clone(&self) -> Self { Self { - inner: if <*mut nativeHTLCOutputInCommitment>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeHTLCOutputInCommitment>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -733,7 +735,7 @@ impl ChannelTransactionParameters { pub(crate) fn take_inner(mut self) -> *mut nativeChannelTransactionParameters { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -779,7 +781,7 @@ pub extern "C" fn ChannelTransactionParameters_set_is_outbound_from_holder(this_ #[no_mangle] pub extern "C" fn ChannelTransactionParameters_get_counterparty_parameters(this_ptr: &ChannelTransactionParameters) -> crate::lightning::ln::chan_utils::CounterpartyChannelTransactionParameters { let mut inner_val = &mut this_ptr.get_native_mut_ref().counterparty_parameters; - let mut local_inner_val = crate::lightning::ln::chan_utils::CounterpartyChannelTransactionParameters { inner: unsafe { (if inner_val.is_none() { std::ptr::null() } else { ObjOps::nonnull_ptr_to_inner( { (inner_val.as_ref().unwrap()) }) } as *const lightning::ln::chan_utils::CounterpartyChannelTransactionParameters<>) as *mut _ }, is_owned: false }; + let mut local_inner_val = crate::lightning::ln::chan_utils::CounterpartyChannelTransactionParameters { inner: unsafe { (if inner_val.is_none() { core::ptr::null() } else { ObjOps::nonnull_ptr_to_inner( { (inner_val.as_ref().unwrap()) }) } as *const lightning::ln::chan_utils::CounterpartyChannelTransactionParameters<>) as *mut _ }, is_owned: false }; local_inner_val } /// The late-bound counterparty channel transaction parameters. @@ -797,7 +799,7 @@ pub extern "C" fn ChannelTransactionParameters_set_counterparty_parameters(this_ #[no_mangle] pub extern "C" fn ChannelTransactionParameters_get_funding_outpoint(this_ptr: &ChannelTransactionParameters) -> crate::lightning::chain::transaction::OutPoint { let mut inner_val = &mut this_ptr.get_native_mut_ref().funding_outpoint; - let mut local_inner_val = crate::lightning::chain::transaction::OutPoint { inner: unsafe { (if inner_val.is_none() { std::ptr::null() } else { ObjOps::nonnull_ptr_to_inner( { (inner_val.as_ref().unwrap()) }) } as *const lightning::chain::transaction::OutPoint<>) as *mut _ }, is_owned: false }; + let mut local_inner_val = crate::lightning::chain::transaction::OutPoint { inner: unsafe { (if inner_val.is_none() { core::ptr::null() } else { ObjOps::nonnull_ptr_to_inner( { (inner_val.as_ref().unwrap()) }) } as *const lightning::chain::transaction::OutPoint<>) as *mut _ }, is_owned: false }; local_inner_val } /// The late-bound funding outpoint @@ -840,7 +842,7 @@ pub extern "C" fn ChannelTransactionParameters_new(mut holder_pubkeys_arg: crate impl Clone for ChannelTransactionParameters { fn clone(&self) -> Self { Self { - inner: if <*mut nativeChannelTransactionParameters>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeChannelTransactionParameters>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -903,7 +905,7 @@ impl CounterpartyChannelTransactionParameters { pub(crate) fn take_inner(mut self) -> *mut nativeCounterpartyChannelTransactionParameters { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -941,7 +943,7 @@ pub extern "C" fn CounterpartyChannelTransactionParameters_new(mut pubkeys_arg: impl Clone for CounterpartyChannelTransactionParameters { fn clone(&self) -> Self { Self { - inner: if <*mut nativeCounterpartyChannelTransactionParameters>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeCounterpartyChannelTransactionParameters>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -1070,7 +1072,7 @@ impl DirectedChannelTransactionParameters { pub(crate) fn take_inner(mut self) -> *mut nativeDirectedChannelTransactionParameters { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -1175,7 +1177,7 @@ impl HolderCommitmentTransaction { pub(crate) fn take_inner(mut self) -> *mut nativeHolderCommitmentTransaction { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -1199,7 +1201,7 @@ pub extern "C" fn HolderCommitmentTransaction_set_counterparty_htlc_sigs(this_pt impl Clone for HolderCommitmentTransaction { fn clone(&self) -> Self { Self { - inner: if <*mut nativeHolderCommitmentTransaction>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeHolderCommitmentTransaction>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -1288,7 +1290,7 @@ impl BuiltCommitmentTransaction { pub(crate) fn take_inner(mut self) -> *mut nativeBuiltCommitmentTransaction { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -1332,7 +1334,7 @@ pub extern "C" fn BuiltCommitmentTransaction_new(mut transaction_arg: crate::c_t impl Clone for BuiltCommitmentTransaction { fn clone(&self) -> Self { Self { - inner: if <*mut nativeBuiltCommitmentTransaction>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeBuiltCommitmentTransaction>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -1434,14 +1436,14 @@ impl ClosingTransaction { pub(crate) fn take_inner(mut self) -> *mut nativeClosingTransaction { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } impl Clone for ClosingTransaction { fn clone(&self) -> Self { Self { - inner: if <*mut nativeClosingTransaction>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeClosingTransaction>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -1461,11 +1463,11 @@ pub extern "C" fn ClosingTransaction_clone(orig: &ClosingTransaction) -> Closing #[no_mangle] pub extern "C" fn ClosingTransaction_hash(o: &ClosingTransaction) -> u64 { if o.inner.is_null() { return 0; } - // Note that we'd love to use std::collections::hash_map::DefaultHasher but it's not in core + // Note that we'd love to use alloc::collections::hash_map::DefaultHasher but it's not in core #[allow(deprecated)] let mut hasher = core::hash::SipHasher::new(); - std::hash::Hash::hash(o.get_native_ref(), &mut hasher); - std::hash::Hasher::finish(&hasher) + core::hash::Hash::hash(o.get_native_ref(), &mut hasher); + core::hash::Hasher::finish(&hasher) } /// Construct an object of the class #[must_use] @@ -1586,7 +1588,7 @@ impl TrustedClosingTransaction { pub(crate) fn take_inner(mut self) -> *mut nativeTrustedClosingTransaction { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -1669,14 +1671,14 @@ impl CommitmentTransaction { pub(crate) fn take_inner(mut self) -> *mut nativeCommitmentTransaction { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } impl Clone for CommitmentTransaction { fn clone(&self) -> Self { Self { - inner: if <*mut nativeCommitmentTransaction>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeCommitmentTransaction>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -1819,7 +1821,7 @@ impl TrustedCommitmentTransaction { pub(crate) fn take_inner(mut self) -> *mut nativeTrustedCommitmentTransaction { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } diff --git a/lightning-c-bindings/src/lightning/ln/channelmanager.rs b/lightning-c-bindings/src/lightning/ln/channelmanager.rs index ddf271c..3910df3 100644 --- a/lightning-c-bindings/src/lightning/ln/channelmanager.rs +++ b/lightning-c-bindings/src/lightning/ln/channelmanager.rs @@ -17,19 +17,23 @@ //! imply it needs to fail HTLCs/payments/channels it manages). //! -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}; mod inbound_payment { -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}; } @@ -114,7 +118,7 @@ impl ChannelManager { pub(crate) fn take_inner(mut self) -> *mut nativeChannelManager { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -169,7 +173,7 @@ impl ChainParameters { pub(crate) fn take_inner(mut self) -> *mut nativeChainParameters { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -211,7 +215,7 @@ pub extern "C" fn ChainParameters_new(mut network_arg: crate::bitcoin::network:: impl Clone for ChainParameters { fn clone(&self) -> Self { Self { - inner: if <*mut nativeChainParameters>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeChainParameters>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -298,7 +302,7 @@ impl CounterpartyForwardingInfo { pub(crate) fn take_inner(mut self) -> *mut nativeCounterpartyForwardingInfo { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -352,7 +356,7 @@ pub extern "C" fn CounterpartyForwardingInfo_new(mut fee_base_msat_arg: u32, mut impl Clone for CounterpartyForwardingInfo { fn clone(&self) -> Self { Self { - inner: if <*mut nativeCounterpartyForwardingInfo>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeCounterpartyForwardingInfo>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -416,7 +420,7 @@ impl ChannelCounterparty { pub(crate) fn take_inner(mut self) -> *mut nativeChannelCounterparty { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -476,7 +480,7 @@ pub extern "C" fn ChannelCounterparty_set_unspendable_punishment_reserve(this_pt #[no_mangle] pub extern "C" fn ChannelCounterparty_get_forwarding_info(this_ptr: &ChannelCounterparty) -> crate::lightning::ln::channelmanager::CounterpartyForwardingInfo { let mut inner_val = &mut this_ptr.get_native_mut_ref().forwarding_info; - let mut local_inner_val = crate::lightning::ln::channelmanager::CounterpartyForwardingInfo { inner: unsafe { (if inner_val.is_none() { std::ptr::null() } else { ObjOps::nonnull_ptr_to_inner( { (inner_val.as_ref().unwrap()) }) } as *const lightning::ln::channelmanager::CounterpartyForwardingInfo<>) as *mut _ }, is_owned: false }; + let mut local_inner_val = crate::lightning::ln::channelmanager::CounterpartyForwardingInfo { inner: unsafe { (if inner_val.is_none() { core::ptr::null() } else { ObjOps::nonnull_ptr_to_inner( { (inner_val.as_ref().unwrap()) }) } as *const lightning::ln::channelmanager::CounterpartyForwardingInfo<>) as *mut _ }, is_owned: false }; local_inner_val } /// Information on the fees and requirements that the counterparty requires when forwarding @@ -503,7 +507,7 @@ pub extern "C" fn ChannelCounterparty_new(mut node_id_arg: crate::c_types::Publi impl Clone for ChannelCounterparty { fn clone(&self) -> Self { Self { - inner: if <*mut nativeChannelCounterparty>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeChannelCounterparty>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -566,7 +570,7 @@ impl ChannelDetails { pub(crate) fn take_inner(mut self) -> *mut nativeChannelDetails { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -608,7 +612,7 @@ pub extern "C" fn ChannelDetails_set_counterparty(this_ptr: &mut ChannelDetails, #[no_mangle] pub extern "C" fn ChannelDetails_get_funding_txo(this_ptr: &ChannelDetails) -> crate::lightning::chain::transaction::OutPoint { let mut inner_val = &mut this_ptr.get_native_mut_ref().funding_txo; - let mut local_inner_val = crate::lightning::chain::transaction::OutPoint { inner: unsafe { (if inner_val.is_none() { std::ptr::null() } else { ObjOps::nonnull_ptr_to_inner( { (inner_val.as_ref().unwrap()) }) } as *const lightning::chain::transaction::OutPoint<>) as *mut _ }, is_owned: false }; + let mut local_inner_val = crate::lightning::chain::transaction::OutPoint { inner: unsafe { (if inner_val.is_none() { core::ptr::null() } else { ObjOps::nonnull_ptr_to_inner( { (inner_val.as_ref().unwrap()) }) } as *const lightning::chain::transaction::OutPoint<>) as *mut _ }, is_owned: false }; local_inner_val } /// The Channel's funding transaction output, if we've negotiated the funding transaction with @@ -925,7 +929,7 @@ pub extern "C" fn ChannelDetails_new(mut channel_id_arg: crate::c_types::ThirtyT impl Clone for ChannelDetails { fn clone(&self) -> Self { Self { - inner: if <*mut nativeChannelDetails>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeChannelDetails>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -1086,7 +1090,7 @@ impl PaymentSendFailure { let mut results_nonref = (*results).clone(); let mut local_results_nonref = Vec::new(); for mut item in results_nonref.drain(..) { local_results_nonref.push( { let mut local_results_nonref_0 = match item { Ok(mut o) => crate::c_types::CResultTempl::ok( { () /*o*/ }).into(), Err(mut e) => crate::c_types::CResultTempl::err( { crate::lightning::util::errors::APIError::native_into(e) }).into() }; local_results_nonref_0 }); }; let mut failed_paths_retry_nonref = (*failed_paths_retry).clone(); - let mut local_failed_paths_retry_nonref = crate::lightning::routing::router::RouteParameters { inner: if failed_paths_retry_nonref.is_none() { std::ptr::null_mut() } else { { ObjOps::heap_alloc((failed_paths_retry_nonref.unwrap())) } }, is_owned: true }; + let mut local_failed_paths_retry_nonref = crate::lightning::routing::router::RouteParameters { inner: if failed_paths_retry_nonref.is_none() { core::ptr::null_mut() } else { { ObjOps::heap_alloc((failed_paths_retry_nonref.unwrap())) } }, is_owned: true }; let mut payment_id_nonref = (*payment_id).clone(); PaymentSendFailure::PartialFailure { results: local_results_nonref.into(), @@ -1118,7 +1122,7 @@ impl PaymentSendFailure { }, nativePaymentSendFailure::PartialFailure {mut results, mut failed_paths_retry, mut payment_id, } => { let mut local_results = Vec::new(); for mut item in results.drain(..) { local_results.push( { let mut local_results_0 = match item { Ok(mut o) => crate::c_types::CResultTempl::ok( { () /*o*/ }).into(), Err(mut e) => crate::c_types::CResultTempl::err( { crate::lightning::util::errors::APIError::native_into(e) }).into() }; local_results_0 }); }; - let mut local_failed_paths_retry = crate::lightning::routing::router::RouteParameters { inner: if failed_paths_retry.is_none() { std::ptr::null_mut() } else { { ObjOps::heap_alloc((failed_paths_retry.unwrap())) } }, is_owned: true }; + let mut local_failed_paths_retry = crate::lightning::routing::router::RouteParameters { inner: if failed_paths_retry.is_none() { core::ptr::null_mut() } else { { ObjOps::heap_alloc((failed_paths_retry.unwrap())) } }, is_owned: true }; PaymentSendFailure::PartialFailure { results: local_results.into(), failed_paths_retry: local_failed_paths_retry, @@ -1687,7 +1691,7 @@ impl From for crate::lightning::util::events::MessageSendE let mut rust_obj = ChannelManager { inner: ObjOps::heap_alloc(obj), is_owned: true }; let mut ret = ChannelManager_as_MessageSendEventsProvider(&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(); + rust_obj.inner = core::ptr::null_mut(); ret.free = Some(ChannelManager_free_void); ret } @@ -1715,7 +1719,7 @@ impl From for crate::lightning::util::events::EventsProvid let mut rust_obj = ChannelManager { inner: ObjOps::heap_alloc(obj), is_owned: true }; let mut ret = ChannelManager_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(); + rust_obj.inner = core::ptr::null_mut(); ret.free = Some(ChannelManager_free_void); ret } @@ -1740,7 +1744,7 @@ impl From for crate::lightning::chain::Listen { let mut rust_obj = ChannelManager { inner: ObjOps::heap_alloc(obj), is_owned: true }; let mut ret = ChannelManager_as_Listen(&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(); + rust_obj.inner = core::ptr::null_mut(); ret.free = Some(ChannelManager_free_void); ret } @@ -1769,7 +1773,7 @@ impl From for crate::lightning::chain::Confirm { let mut rust_obj = ChannelManager { inner: ObjOps::heap_alloc(obj), is_owned: true }; let mut ret = ChannelManager_as_Confirm(&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(); + rust_obj.inner = core::ptr::null_mut(); ret.free = Some(ChannelManager_free_void); ret } @@ -1814,7 +1818,7 @@ extern "C" fn ChannelManager_Confirm_transaction_unconfirmed(this_arg: *const c_ #[must_use] #[no_mangle] pub extern "C" fn ChannelManager_await_persistable_update_timeout(this_arg: &ChannelManager, mut max_wait: u64) -> bool { - let mut ret = unsafe { &*ObjOps::untweak_ptr(this_arg.inner) }.await_persistable_update_timeout(std::time::Duration::from_secs(max_wait)); + let mut ret = unsafe { &*ObjOps::untweak_ptr(this_arg.inner) }.await_persistable_update_timeout(core::time::Duration::from_secs(max_wait)); ret } @@ -1840,7 +1844,7 @@ impl From for crate::lightning::ln::msgs::ChannelMessageHa let mut rust_obj = ChannelManager { inner: ObjOps::heap_alloc(obj), is_owned: true }; let mut ret = ChannelManager_as_ChannelMessageHandler(&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(); + rust_obj.inner = core::ptr::null_mut(); ret.free = Some(ChannelManager_free_void); ret } @@ -2028,7 +2032,7 @@ impl ChannelManagerReadArgs { pub(crate) fn take_inner(mut self) -> *mut nativeChannelManagerReadArgs { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } diff --git a/lightning-c-bindings/src/lightning/ln/features.rs b/lightning-c-bindings/src/lightning/ln/features.rs index c0a52b3..b7829a4 100644 --- a/lightning-c-bindings/src/lightning/ln/features.rs +++ b/lightning-c-bindings/src/lightning/ln/features.rs @@ -21,19 +21,23 @@ //! [BOLT #9]: https://github.com/lightningnetwork/lightning-rfc/blob/master/09-features.md //! [messages]: crate::ln::msgs -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}; mod sealed { -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}; } /// Checks if two InitFeaturess contain equal inner contents. @@ -84,7 +88,7 @@ pub extern "C" fn ChannelTypeFeatures_eq(a: &ChannelTypeFeatures, b: &ChannelTyp impl Clone for InitFeatures { fn clone(&self) -> Self { Self { - inner: if <*mut nativeInitFeatures>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeInitFeatures>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -103,7 +107,7 @@ pub extern "C" fn InitFeatures_clone(orig: &InitFeatures) -> InitFeatures { impl Clone for NodeFeatures { fn clone(&self) -> Self { Self { - inner: if <*mut nativeNodeFeatures>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeNodeFeatures>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -122,7 +126,7 @@ pub extern "C" fn NodeFeatures_clone(orig: &NodeFeatures) -> NodeFeatures { impl Clone for ChannelFeatures { fn clone(&self) -> Self { Self { - inner: if <*mut nativeChannelFeatures>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeChannelFeatures>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -141,7 +145,7 @@ pub extern "C" fn ChannelFeatures_clone(orig: &ChannelFeatures) -> ChannelFeatur impl Clone for InvoiceFeatures { fn clone(&self) -> Self { Self { - inner: if <*mut nativeInvoiceFeatures>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeInvoiceFeatures>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -160,7 +164,7 @@ pub extern "C" fn InvoiceFeatures_clone(orig: &InvoiceFeatures) -> InvoiceFeatur impl Clone for ChannelTypeFeatures { fn clone(&self) -> Self { Self { - inner: if <*mut nativeChannelTypeFeatures>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeChannelTypeFeatures>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -223,7 +227,7 @@ impl InitFeatures { pub(crate) fn take_inner(mut self) -> *mut nativeInitFeatures { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -274,7 +278,7 @@ impl NodeFeatures { pub(crate) fn take_inner(mut self) -> *mut nativeNodeFeatures { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -325,7 +329,7 @@ impl ChannelFeatures { pub(crate) fn take_inner(mut self) -> *mut nativeChannelFeatures { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -376,7 +380,7 @@ impl InvoiceFeatures { pub(crate) fn take_inner(mut self) -> *mut nativeInvoiceFeatures { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -436,7 +440,7 @@ impl ChannelTypeFeatures { pub(crate) fn take_inner(mut self) -> *mut nativeChannelTypeFeatures { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } diff --git a/lightning-c-bindings/src/lightning/ln/mod.rs b/lightning-c-bindings/src/lightning/ln/mod.rs index be855e1..d95d1b2 100644 --- a/lightning-c-bindings/src/lightning/ln/mod.rs +++ b/lightning-c-bindings/src/lightning/ln/mod.rs @@ -17,11 +17,13 @@ //! you want to learn things about the network topology (eg get a route for sending a payment), //! call into your NetGraphMsgHandler. -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}; pub mod channelmanager; pub mod msgs; @@ -32,28 +34,34 @@ pub mod script; pub mod wire; mod peer_channel_encryptor { -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}; } mod channel { -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}; } mod onion_utils { -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}; } diff --git a/lightning-c-bindings/src/lightning/ln/msgs.rs b/lightning-c-bindings/src/lightning/ln/msgs.rs index a5a729c..67ca95f 100644 --- a/lightning-c-bindings/src/lightning/ln/msgs.rs +++ b/lightning-c-bindings/src/lightning/ln/msgs.rs @@ -23,11 +23,13 @@ //! raw socket events into your non-internet-facing system and then send routing events back to //! track the network on the less-secure system. -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}; use lightning::ln::msgs::DecodeError as nativeDecodeErrorImport; @@ -76,14 +78,14 @@ impl DecodeError { pub(crate) fn take_inner(mut self) -> *mut nativeDecodeError { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } impl Clone for DecodeError { fn clone(&self) -> Self { Self { - inner: if <*mut nativeDecodeError>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeDecodeError>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -146,7 +148,7 @@ impl Init { pub(crate) fn take_inner(mut self) -> *mut nativeInit { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -172,7 +174,7 @@ pub extern "C" fn Init_new(mut features_arg: crate::lightning::ln::features::Ini impl Clone for Init { fn clone(&self) -> Self { Self { - inner: if <*mut nativeInit>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeInit>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -235,7 +237,7 @@ impl ErrorMessage { pub(crate) fn take_inner(mut self) -> *mut nativeErrorMessage { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -279,7 +281,7 @@ pub extern "C" fn ErrorMessage_new(mut channel_id_arg: crate::c_types::ThirtyTwo impl Clone for ErrorMessage { fn clone(&self) -> Self { Self { - inner: if <*mut nativeErrorMessage>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeErrorMessage>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -342,7 +344,7 @@ impl Ping { pub(crate) fn take_inner(mut self) -> *mut nativePing { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -382,7 +384,7 @@ pub extern "C" fn Ping_new(mut ponglen_arg: u16, mut byteslen_arg: u16) -> Ping impl Clone for Ping { fn clone(&self) -> Self { Self { - inner: if <*mut nativePing>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativePing>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -445,7 +447,7 @@ impl Pong { pub(crate) fn take_inner(mut self) -> *mut nativePong { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -473,7 +475,7 @@ pub extern "C" fn Pong_new(mut byteslen_arg: u16) -> Pong { impl Clone for Pong { fn clone(&self) -> Self { Self { - inner: if <*mut nativePong>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativePong>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -536,7 +538,7 @@ impl OpenChannel { pub(crate) fn take_inner(mut self) -> *mut nativeOpenChannel { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -746,7 +748,7 @@ pub extern "C" fn OpenChannel_set_channel_flags(this_ptr: &mut OpenChannel, mut #[no_mangle] pub extern "C" fn OpenChannel_get_channel_type(this_ptr: &OpenChannel) -> crate::lightning::ln::features::ChannelTypeFeatures { let mut inner_val = &mut this_ptr.get_native_mut_ref().channel_type; - let mut local_inner_val = crate::lightning::ln::features::ChannelTypeFeatures { inner: unsafe { (if inner_val.is_none() { std::ptr::null() } else { ObjOps::nonnull_ptr_to_inner( { (inner_val.as_ref().unwrap()) }) } as *const lightning::ln::features::ChannelTypeFeatures<>) as *mut _ }, is_owned: false }; + let mut local_inner_val = crate::lightning::ln::features::ChannelTypeFeatures { inner: unsafe { (if inner_val.is_none() { core::ptr::null() } else { ObjOps::nonnull_ptr_to_inner( { (inner_val.as_ref().unwrap()) }) } as *const lightning::ln::features::ChannelTypeFeatures<>) as *mut _ }, is_owned: false }; local_inner_val } /// The channel type that this channel will represent. If none is set, we derive the channel @@ -762,7 +764,7 @@ pub extern "C" fn OpenChannel_set_channel_type(this_ptr: &mut OpenChannel, mut v impl Clone for OpenChannel { fn clone(&self) -> Self { Self { - inner: if <*mut nativeOpenChannel>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeOpenChannel>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -825,7 +827,7 @@ impl AcceptChannel { pub(crate) fn take_inner(mut self) -> *mut nativeAcceptChannel { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -986,7 +988,7 @@ pub extern "C" fn AcceptChannel_set_first_per_commitment_point(this_ptr: &mut Ac impl Clone for AcceptChannel { fn clone(&self) -> Self { Self { - inner: if <*mut nativeAcceptChannel>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeAcceptChannel>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -1049,7 +1051,7 @@ impl FundingCreated { pub(crate) fn take_inner(mut self) -> *mut nativeFundingCreated { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -1111,7 +1113,7 @@ pub extern "C" fn FundingCreated_new(mut temporary_channel_id_arg: crate::c_type impl Clone for FundingCreated { fn clone(&self) -> Self { Self { - inner: if <*mut nativeFundingCreated>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeFundingCreated>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -1174,7 +1176,7 @@ impl FundingSigned { pub(crate) fn take_inner(mut self) -> *mut nativeFundingSigned { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -1212,7 +1214,7 @@ pub extern "C" fn FundingSigned_new(mut channel_id_arg: crate::c_types::ThirtyTw impl Clone for FundingSigned { fn clone(&self) -> Self { Self { - inner: if <*mut nativeFundingSigned>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeFundingSigned>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -1275,7 +1277,7 @@ impl FundingLocked { pub(crate) fn take_inner(mut self) -> *mut nativeFundingLocked { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -1313,7 +1315,7 @@ pub extern "C" fn FundingLocked_new(mut channel_id_arg: crate::c_types::ThirtyTw impl Clone for FundingLocked { fn clone(&self) -> Self { Self { - inner: if <*mut nativeFundingLocked>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeFundingLocked>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -1376,7 +1378,7 @@ impl Shutdown { pub(crate) fn take_inner(mut self) -> *mut nativeShutdown { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -1416,7 +1418,7 @@ pub extern "C" fn Shutdown_new(mut channel_id_arg: crate::c_types::ThirtyTwoByte impl Clone for Shutdown { fn clone(&self) -> Self { Self { - inner: if <*mut nativeShutdown>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeShutdown>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -1481,7 +1483,7 @@ impl ClosingSignedFeeRange { pub(crate) fn take_inner(mut self) -> *mut nativeClosingSignedFeeRange { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -1523,7 +1525,7 @@ pub extern "C" fn ClosingSignedFeeRange_new(mut min_fee_satoshis_arg: u64, mut m impl Clone for ClosingSignedFeeRange { fn clone(&self) -> Self { Self { - inner: if <*mut nativeClosingSignedFeeRange>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeClosingSignedFeeRange>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -1586,7 +1588,7 @@ impl ClosingSigned { pub(crate) fn take_inner(mut self) -> *mut nativeClosingSigned { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -1630,7 +1632,7 @@ pub extern "C" fn ClosingSigned_set_signature(this_ptr: &mut ClosingSigned, mut #[no_mangle] pub extern "C" fn ClosingSigned_get_fee_range(this_ptr: &ClosingSigned) -> crate::lightning::ln::msgs::ClosingSignedFeeRange { let mut inner_val = &mut this_ptr.get_native_mut_ref().fee_range; - let mut local_inner_val = crate::lightning::ln::msgs::ClosingSignedFeeRange { inner: unsafe { (if inner_val.is_none() { std::ptr::null() } else { ObjOps::nonnull_ptr_to_inner( { (inner_val.as_ref().unwrap()) }) } as *const lightning::ln::msgs::ClosingSignedFeeRange<>) as *mut _ }, is_owned: false }; + let mut local_inner_val = crate::lightning::ln::msgs::ClosingSignedFeeRange { inner: unsafe { (if inner_val.is_none() { core::ptr::null() } else { ObjOps::nonnull_ptr_to_inner( { (inner_val.as_ref().unwrap()) }) } as *const lightning::ln::msgs::ClosingSignedFeeRange<>) as *mut _ }, is_owned: false }; local_inner_val } /// The minimum and maximum fees which the sender is willing to accept, provided only by new @@ -1657,7 +1659,7 @@ pub extern "C" fn ClosingSigned_new(mut channel_id_arg: crate::c_types::ThirtyTw impl Clone for ClosingSigned { fn clone(&self) -> Self { Self { - inner: if <*mut nativeClosingSigned>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeClosingSigned>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -1720,7 +1722,7 @@ impl UpdateAddHTLC { pub(crate) fn take_inner(mut self) -> *mut nativeUpdateAddHTLC { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -1782,7 +1784,7 @@ pub extern "C" fn UpdateAddHTLC_set_cltv_expiry(this_ptr: &mut UpdateAddHTLC, mu impl Clone for UpdateAddHTLC { fn clone(&self) -> Self { Self { - inner: if <*mut nativeUpdateAddHTLC>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeUpdateAddHTLC>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -1845,7 +1847,7 @@ impl UpdateFulfillHTLC { pub(crate) fn take_inner(mut self) -> *mut nativeUpdateFulfillHTLC { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -1895,7 +1897,7 @@ pub extern "C" fn UpdateFulfillHTLC_new(mut channel_id_arg: crate::c_types::Thir impl Clone for UpdateFulfillHTLC { fn clone(&self) -> Self { Self { - inner: if <*mut nativeUpdateFulfillHTLC>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeUpdateFulfillHTLC>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -1958,7 +1960,7 @@ impl UpdateFailHTLC { pub(crate) fn take_inner(mut self) -> *mut nativeUpdateFailHTLC { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -1987,7 +1989,7 @@ pub extern "C" fn UpdateFailHTLC_set_htlc_id(this_ptr: &mut UpdateFailHTLC, mut impl Clone for UpdateFailHTLC { fn clone(&self) -> Self { Self { - inner: if <*mut nativeUpdateFailHTLC>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeUpdateFailHTLC>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -2050,7 +2052,7 @@ impl UpdateFailMalformedHTLC { pub(crate) fn take_inner(mut self) -> *mut nativeUpdateFailMalformedHTLC { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -2090,7 +2092,7 @@ pub extern "C" fn UpdateFailMalformedHTLC_set_failure_code(this_ptr: &mut Update impl Clone for UpdateFailMalformedHTLC { fn clone(&self) -> Self { Self { - inner: if <*mut nativeUpdateFailMalformedHTLC>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeUpdateFailMalformedHTLC>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -2153,7 +2155,7 @@ impl CommitmentSigned { pub(crate) fn take_inner(mut self) -> *mut nativeCommitmentSigned { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -2199,7 +2201,7 @@ pub extern "C" fn CommitmentSigned_new(mut channel_id_arg: crate::c_types::Thirt impl Clone for CommitmentSigned { fn clone(&self) -> Self { Self { - inner: if <*mut nativeCommitmentSigned>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeCommitmentSigned>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -2262,7 +2264,7 @@ impl RevokeAndACK { pub(crate) fn take_inner(mut self) -> *mut nativeRevokeAndACK { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -2312,7 +2314,7 @@ pub extern "C" fn RevokeAndACK_new(mut channel_id_arg: crate::c_types::ThirtyTwo impl Clone for RevokeAndACK { fn clone(&self) -> Self { Self { - inner: if <*mut nativeRevokeAndACK>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeRevokeAndACK>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -2375,7 +2377,7 @@ impl UpdateFee { pub(crate) fn take_inner(mut self) -> *mut nativeUpdateFee { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -2413,7 +2415,7 @@ pub extern "C" fn UpdateFee_new(mut channel_id_arg: crate::c_types::ThirtyTwoByt impl Clone for UpdateFee { fn clone(&self) -> Self { Self { - inner: if <*mut nativeUpdateFee>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeUpdateFee>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -2479,7 +2481,7 @@ impl DataLossProtect { pub(crate) fn take_inner(mut self) -> *mut nativeDataLossProtect { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -2519,7 +2521,7 @@ pub extern "C" fn DataLossProtect_new(mut your_last_per_commitment_secret_arg: c impl Clone for DataLossProtect { fn clone(&self) -> Self { Self { - inner: if <*mut nativeDataLossProtect>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeDataLossProtect>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -2582,7 +2584,7 @@ impl ChannelReestablish { pub(crate) fn take_inner(mut self) -> *mut nativeChannelReestablish { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -2622,7 +2624,7 @@ pub extern "C" fn ChannelReestablish_set_next_remote_commitment_number(this_ptr: impl Clone for ChannelReestablish { fn clone(&self) -> Self { Self { - inner: if <*mut nativeChannelReestablish>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeChannelReestablish>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -2685,7 +2687,7 @@ impl AnnouncementSignatures { pub(crate) fn take_inner(mut self) -> *mut nativeAnnouncementSignatures { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -2747,7 +2749,7 @@ pub extern "C" fn AnnouncementSignatures_new(mut channel_id_arg: crate::c_types: impl Clone for AnnouncementSignatures { fn clone(&self) -> Self { Self { - inner: if <*mut nativeAnnouncementSignatures>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeAnnouncementSignatures>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -3040,7 +3042,7 @@ impl UnsignedNodeAnnouncement { pub(crate) fn take_inner(mut self) -> *mut nativeUnsignedNodeAnnouncement { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -3112,7 +3114,7 @@ pub extern "C" fn UnsignedNodeAnnouncement_set_addresses(this_ptr: &mut Unsigned impl Clone for UnsignedNodeAnnouncement { fn clone(&self) -> Self { Self { - inner: if <*mut nativeUnsignedNodeAnnouncement>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeUnsignedNodeAnnouncement>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -3175,7 +3177,7 @@ impl NodeAnnouncement { pub(crate) fn take_inner(mut self) -> *mut nativeNodeAnnouncement { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -3213,7 +3215,7 @@ pub extern "C" fn NodeAnnouncement_new(mut signature_arg: crate::c_types::Signat impl Clone for NodeAnnouncement { fn clone(&self) -> Self { Self { - inner: if <*mut nativeNodeAnnouncement>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeNodeAnnouncement>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -3276,7 +3278,7 @@ impl UnsignedChannelAnnouncement { pub(crate) fn take_inner(mut self) -> *mut nativeUnsignedChannelAnnouncement { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -3360,7 +3362,7 @@ pub extern "C" fn UnsignedChannelAnnouncement_set_bitcoin_key_2(this_ptr: &mut U impl Clone for UnsignedChannelAnnouncement { fn clone(&self) -> Self { Self { - inner: if <*mut nativeUnsignedChannelAnnouncement>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeUnsignedChannelAnnouncement>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -3423,7 +3425,7 @@ impl ChannelAnnouncement { pub(crate) fn take_inner(mut self) -> *mut nativeChannelAnnouncement { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -3497,7 +3499,7 @@ pub extern "C" fn ChannelAnnouncement_new(mut node_signature_1_arg: crate::c_typ impl Clone for ChannelAnnouncement { fn clone(&self) -> Self { Self { - inner: if <*mut nativeChannelAnnouncement>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeChannelAnnouncement>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -3560,7 +3562,7 @@ impl UnsignedChannelUpdate { pub(crate) fn take_inner(mut self) -> *mut nativeUnsignedChannelUpdate { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -3669,7 +3671,7 @@ pub extern "C" fn UnsignedChannelUpdate_set_fee_proportional_millionths(this_ptr impl Clone for UnsignedChannelUpdate { fn clone(&self) -> Self { Self { - inner: if <*mut nativeUnsignedChannelUpdate>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeUnsignedChannelUpdate>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -3732,7 +3734,7 @@ impl ChannelUpdate { pub(crate) fn take_inner(mut self) -> *mut nativeChannelUpdate { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -3770,7 +3772,7 @@ pub extern "C" fn ChannelUpdate_new(mut signature_arg: crate::c_types::Signature impl Clone for ChannelUpdate { fn clone(&self) -> Self { Self { - inner: if <*mut nativeChannelUpdate>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeChannelUpdate>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -3836,7 +3838,7 @@ impl QueryChannelRange { pub(crate) fn take_inner(mut self) -> *mut nativeQueryChannelRange { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -3886,7 +3888,7 @@ pub extern "C" fn QueryChannelRange_new(mut chain_hash_arg: crate::c_types::Thir impl Clone for QueryChannelRange { fn clone(&self) -> Self { Self { - inner: if <*mut nativeQueryChannelRange>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeQueryChannelRange>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -3955,7 +3957,7 @@ impl ReplyChannelRange { pub(crate) fn take_inner(mut self) -> *mut nativeReplyChannelRange { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -4025,7 +4027,7 @@ pub extern "C" fn ReplyChannelRange_new(mut chain_hash_arg: crate::c_types::Thir impl Clone for ReplyChannelRange { fn clone(&self) -> Self { Self { - inner: if <*mut nativeReplyChannelRange>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeReplyChannelRange>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -4095,7 +4097,7 @@ impl QueryShortChannelIds { pub(crate) fn take_inner(mut self) -> *mut nativeQueryShortChannelIds { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -4129,7 +4131,7 @@ pub extern "C" fn QueryShortChannelIds_new(mut chain_hash_arg: crate::c_types::T impl Clone for QueryShortChannelIds { fn clone(&self) -> Self { Self { - inner: if <*mut nativeQueryShortChannelIds>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeQueryShortChannelIds>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -4195,7 +4197,7 @@ impl ReplyShortChannelIdsEnd { pub(crate) fn take_inner(mut self) -> *mut nativeReplyShortChannelIdsEnd { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -4235,7 +4237,7 @@ pub extern "C" fn ReplyShortChannelIdsEnd_new(mut chain_hash_arg: crate::c_types impl Clone for ReplyShortChannelIdsEnd { fn clone(&self) -> Self { Self { - inner: if <*mut nativeReplyShortChannelIdsEnd>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeReplyShortChannelIdsEnd>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -4300,7 +4302,7 @@ impl GossipTimestampFilter { pub(crate) fn take_inner(mut self) -> *mut nativeGossipTimestampFilter { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -4350,7 +4352,7 @@ pub extern "C" fn GossipTimestampFilter_new(mut chain_hash_arg: crate::c_types:: impl Clone for GossipTimestampFilter { fn clone(&self) -> Self { Self { - inner: if <*mut nativeGossipTimestampFilter>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeGossipTimestampFilter>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -4449,7 +4451,7 @@ impl ErrorAction { match native { nativeErrorAction::DisconnectPeer {ref msg, } => { let mut msg_nonref = (*msg).clone(); - let mut local_msg_nonref = crate::lightning::ln::msgs::ErrorMessage { inner: if msg_nonref.is_none() { std::ptr::null_mut() } else { { ObjOps::heap_alloc((msg_nonref.unwrap())) } }, is_owned: true }; + let mut local_msg_nonref = crate::lightning::ln::msgs::ErrorMessage { inner: if msg_nonref.is_none() { core::ptr::null_mut() } else { { ObjOps::heap_alloc((msg_nonref.unwrap())) } }, is_owned: true }; ErrorAction::DisconnectPeer { msg: local_msg_nonref, } @@ -4474,7 +4476,7 @@ impl ErrorAction { pub(crate) fn native_into(native: nativeErrorAction) -> Self { match native { nativeErrorAction::DisconnectPeer {mut msg, } => { - let mut local_msg = crate::lightning::ln::msgs::ErrorMessage { inner: if msg.is_none() { std::ptr::null_mut() } else { { ObjOps::heap_alloc((msg.unwrap())) } }, is_owned: true }; + let mut local_msg = crate::lightning::ln::msgs::ErrorMessage { inner: if msg.is_none() { core::ptr::null_mut() } else { { ObjOps::heap_alloc((msg.unwrap())) } }, is_owned: true }; ErrorAction::DisconnectPeer { msg: local_msg, } @@ -4576,7 +4578,7 @@ impl LightningError { pub(crate) fn take_inner(mut self) -> *mut nativeLightningError { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -4614,7 +4616,7 @@ pub extern "C" fn LightningError_new(mut err_arg: crate::c_types::Str, mut actio impl Clone for LightningError { fn clone(&self) -> Self { Self { - inner: if <*mut nativeLightningError>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeLightningError>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -4678,7 +4680,7 @@ impl CommitmentUpdate { pub(crate) fn take_inner(mut self) -> *mut nativeCommitmentUpdate { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -4740,7 +4742,7 @@ pub extern "C" fn CommitmentUpdate_set_update_fail_malformed_htlcs(this_ptr: &mu #[no_mangle] pub extern "C" fn CommitmentUpdate_get_update_fee(this_ptr: &CommitmentUpdate) -> crate::lightning::ln::msgs::UpdateFee { let mut inner_val = &mut this_ptr.get_native_mut_ref().update_fee; - let mut local_inner_val = crate::lightning::ln::msgs::UpdateFee { inner: unsafe { (if inner_val.is_none() { std::ptr::null() } else { ObjOps::nonnull_ptr_to_inner( { (inner_val.as_ref().unwrap()) }) } as *const lightning::ln::msgs::UpdateFee<>) as *mut _ }, is_owned: false }; + let mut local_inner_val = crate::lightning::ln::msgs::UpdateFee { inner: unsafe { (if inner_val.is_none() { core::ptr::null() } else { ObjOps::nonnull_ptr_to_inner( { (inner_val.as_ref().unwrap()) }) } as *const lightning::ln::msgs::UpdateFee<>) as *mut _ }, is_owned: false }; local_inner_val } /// An update_fee message which should be sent @@ -4783,7 +4785,7 @@ pub extern "C" fn CommitmentUpdate_new(mut update_add_htlcs_arg: crate::c_types: impl Clone for CommitmentUpdate { fn clone(&self) -> Self { Self { - inner: if <*mut nativeCommitmentUpdate>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeCommitmentUpdate>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -4961,7 +4963,7 @@ impl rustChannelMessageHandler for ChannelMessageHandler { // We're essentially a pointer already, or at least a set of pointers, so allow us to be used // directly as a Deref trait in higher-level structs: -impl std::ops::Deref for ChannelMessageHandler { +impl core::ops::Deref for ChannelMessageHandler { type Target = Self; fn deref(&self) -> &Self { self @@ -5126,7 +5128,7 @@ impl rustRoutingMessageHandler for RoutingMessageHandler { // We're essentially a pointer already, or at least a set of pointers, so allow us to be used // directly as a Deref trait in higher-level structs: -impl std::ops::Deref for RoutingMessageHandler { +impl core::ops::Deref for RoutingMessageHandler { type Target = Self; fn deref(&self) -> &Self { self @@ -5144,11 +5146,13 @@ impl Drop for RoutingMessageHandler { } mod fuzzy_internal_msgs { -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}; } #[no_mangle] diff --git a/lightning-c-bindings/src/lightning/ln/peer_handler.rs b/lightning-c-bindings/src/lightning/ln/peer_handler.rs index e701527..9d712c8 100644 --- a/lightning-c-bindings/src/lightning/ln/peer_handler.rs +++ b/lightning-c-bindings/src/lightning/ln/peer_handler.rs @@ -14,11 +14,13 @@ //! call into the provided message handlers (probably a ChannelManager and NetGraphmsgHandler) with messages //! they should handle, and encoding/sending response messages. -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}; /// Handler for BOLT1-compliant messages. #[repr(C)] @@ -56,7 +58,7 @@ pub(crate) extern "C" fn CustomMessageHandler_clone_fields(orig: &CustomMessageH } impl lightning::ln::wire::CustomMessageReader for CustomMessageHandler { type CustomMessage = crate::lightning::ln::wire::Type; - fn read(&self, mut message_type: u16, mut buffer: &mut R) -> Result, lightning::ln::msgs::DecodeError> { + fn read(&self, mut message_type: u16, mut buffer: &mut R) -> Result, lightning::ln::msgs::DecodeError> { let mut ret = (self.CustomMessageReader.read)(self.CustomMessageReader.this_arg, message_type, crate::c_types::u8slice::from_vec(&crate::c_types::reader_to_vec(buffer))); let mut local_ret = match ret.result_ok { true => Ok( { let mut local_ret_0 = { /* (*unsafe { Box::from_raw(<*mut _>::take_ptr(&mut ret.contents.result)) })*/ let ret_0_opt = (*unsafe { Box::from_raw(<*mut _>::take_ptr(&mut ret.contents.result)) }); { } if ret_0_opt.is_none() { None } else { Some({ ret_0_opt.take() }) } }; local_ret_0 }), false => Err( { *unsafe { Box::from_raw((*unsafe { Box::from_raw(<*mut _>::take_ptr(&mut ret.contents.err)) }).take_inner()) } })}; local_ret @@ -79,7 +81,7 @@ impl rustCustomMessageHandler for CustomMessageHandler { // We're essentially a pointer already, or at least a set of pointers, so allow us to be used // directly as a Deref trait in higher-level structs: -impl std::ops::Deref for CustomMessageHandler { +impl core::ops::Deref for CustomMessageHandler { type Target = Self; fn deref(&self) -> &Self { self @@ -143,7 +145,7 @@ impl IgnoringMessageHandler { pub(crate) fn take_inner(mut self) -> *mut nativeIgnoringMessageHandler { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -159,7 +161,7 @@ impl From for crate::lightning::util::events::Mess let mut rust_obj = IgnoringMessageHandler { inner: ObjOps::heap_alloc(obj), is_owned: true }; let mut ret = IgnoringMessageHandler_as_MessageSendEventsProvider(&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(); + rust_obj.inner = core::ptr::null_mut(); ret.free = Some(IgnoringMessageHandler_free_void); ret } @@ -187,7 +189,7 @@ impl From for crate::lightning::ln::msgs::RoutingM let mut rust_obj = IgnoringMessageHandler { inner: ObjOps::heap_alloc(obj), is_owned: true }; let mut ret = IgnoringMessageHandler_as_RoutingMessageHandler(&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(); + rust_obj.inner = core::ptr::null_mut(); ret.free = Some(IgnoringMessageHandler_free_void); ret } @@ -238,7 +240,7 @@ extern "C" fn IgnoringMessageHandler_RoutingMessageHandler_handle_channel_update #[must_use] extern "C" fn IgnoringMessageHandler_RoutingMessageHandler_get_next_channel_announcements(this_arg: *const c_void, mut _starting_point: u64, mut _batch_amount: u8) -> crate::c_types::derived::CVec_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ { let mut ret = >::get_next_channel_announcements(unsafe { &mut *(this_arg as *mut nativeIgnoringMessageHandler) }, _starting_point, _batch_amount); - let mut local_ret = Vec::new(); for mut item in ret.drain(..) { local_ret.push( { let (mut orig_ret_0_0, mut orig_ret_0_1, mut orig_ret_0_2) = item; let mut local_orig_ret_0_1 = crate::lightning::ln::msgs::ChannelUpdate { inner: if orig_ret_0_1.is_none() { std::ptr::null_mut() } else { { ObjOps::heap_alloc((orig_ret_0_1.unwrap())) } }, is_owned: true }; let mut local_orig_ret_0_2 = crate::lightning::ln::msgs::ChannelUpdate { inner: if orig_ret_0_2.is_none() { std::ptr::null_mut() } else { { ObjOps::heap_alloc((orig_ret_0_2.unwrap())) } }, is_owned: true }; let mut local_ret_0 = (crate::lightning::ln::msgs::ChannelAnnouncement { inner: ObjOps::heap_alloc(orig_ret_0_0), is_owned: true }, local_orig_ret_0_1, local_orig_ret_0_2).into(); local_ret_0 }); }; + let mut local_ret = Vec::new(); for mut item in ret.drain(..) { local_ret.push( { let (mut orig_ret_0_0, mut orig_ret_0_1, mut orig_ret_0_2) = item; let mut local_orig_ret_0_1 = crate::lightning::ln::msgs::ChannelUpdate { inner: if orig_ret_0_1.is_none() { core::ptr::null_mut() } else { { ObjOps::heap_alloc((orig_ret_0_1.unwrap())) } }, is_owned: true }; let mut local_orig_ret_0_2 = crate::lightning::ln::msgs::ChannelUpdate { inner: if orig_ret_0_2.is_none() { core::ptr::null_mut() } else { { ObjOps::heap_alloc((orig_ret_0_2.unwrap())) } }, is_owned: true }; let mut local_ret_0 = (crate::lightning::ln::msgs::ChannelAnnouncement { inner: ObjOps::heap_alloc(orig_ret_0_0), is_owned: true }, local_orig_ret_0_1, local_orig_ret_0_2).into(); local_ret_0 }); }; local_ret.into() } #[must_use] @@ -287,7 +289,7 @@ impl From for crate::lightning::ln::wire::CustomMe let mut rust_obj = IgnoringMessageHandler { inner: ObjOps::heap_alloc(obj), is_owned: true }; let mut ret = IgnoringMessageHandler_as_CustomMessageReader(&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(); + rust_obj.inner = core::ptr::null_mut(); ret.free = Some(IgnoringMessageHandler_free_void); ret } @@ -315,7 +317,7 @@ impl From for crate::lightning::ln::peer_handler:: let mut rust_obj = IgnoringMessageHandler { inner: ObjOps::heap_alloc(obj), is_owned: true }; let mut ret = IgnoringMessageHandler_as_CustomMessageHandler(&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(); + rust_obj.inner = core::ptr::null_mut(); ret.free = Some(IgnoringMessageHandler_free_void); ret } @@ -396,7 +398,7 @@ impl ErroringMessageHandler { pub(crate) fn take_inner(mut self) -> *mut nativeErroringMessageHandler { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -413,7 +415,7 @@ impl From for crate::lightning::util::events::Mess let mut rust_obj = ErroringMessageHandler { inner: ObjOps::heap_alloc(obj), is_owned: true }; let mut ret = ErroringMessageHandler_as_MessageSendEventsProvider(&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(); + rust_obj.inner = core::ptr::null_mut(); ret.free = Some(ErroringMessageHandler_free_void); ret } @@ -441,7 +443,7 @@ impl From for crate::lightning::ln::msgs::ChannelM let mut rust_obj = ErroringMessageHandler { inner: ObjOps::heap_alloc(obj), is_owned: true }; let mut ret = ErroringMessageHandler_as_ChannelMessageHandler(&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(); + rust_obj.inner = core::ptr::null_mut(); ret.free = Some(ErroringMessageHandler_free_void); ret } @@ -589,7 +591,7 @@ impl MessageHandler { pub(crate) fn take_inner(mut self) -> *mut nativeMessageHandler { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -706,12 +708,12 @@ pub(crate) extern "C" fn SocketDescriptor_clone_fields(orig: &SocketDescriptor) free: Clone::clone(&orig.free), } } -impl std::cmp::Eq for SocketDescriptor {} -impl std::cmp::PartialEq for SocketDescriptor { +impl core::cmp::Eq for SocketDescriptor {} +impl core::cmp::PartialEq for SocketDescriptor { fn eq(&self, o: &Self) -> bool { (self.eq)(self.this_arg, o) } } -impl std::hash::Hash for SocketDescriptor { - fn hash(&self, hasher: &mut H) { hasher.write_u64((self.hash)(self.this_arg)) } +impl core::hash::Hash for SocketDescriptor { + fn hash(&self, hasher: &mut H) { hasher.write_u64((self.hash)(self.this_arg)) } } #[no_mangle] /// Creates a copy of a SocketDescriptor @@ -740,7 +742,7 @@ impl rustSocketDescriptor for SocketDescriptor { // We're essentially a pointer already, or at least a set of pointers, so allow us to be used // directly as a Deref trait in higher-level structs: -impl std::ops::Deref for SocketDescriptor { +impl core::ops::Deref for SocketDescriptor { type Target = Self; fn deref(&self) -> &Self { self @@ -805,7 +807,7 @@ impl PeerHandleError { pub(crate) fn take_inner(mut self) -> *mut nativePeerHandleError { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -833,7 +835,7 @@ pub extern "C" fn PeerHandleError_new(mut no_connection_possible_arg: bool) -> P impl Clone for PeerHandleError { fn clone(&self) -> Self { Self { - inner: if <*mut nativePeerHandleError>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativePeerHandleError>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -914,7 +916,7 @@ impl PeerManager { pub(crate) fn take_inner(mut self) -> *mut nativePeerManager { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } diff --git a/lightning-c-bindings/src/lightning/ln/script.rs b/lightning-c-bindings/src/lightning/ln/script.rs index b171adb..fe5c681 100644 --- a/lightning-c-bindings/src/lightning/ln/script.rs +++ b/lightning-c-bindings/src/lightning/ln/script.rs @@ -8,11 +8,13 @@ //! Abstractions for scripts used in the Lightning Network. -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}; use lightning::ln::script::ShutdownScript as nativeShutdownScriptImport; @@ -63,14 +65,14 @@ impl ShutdownScript { pub(crate) fn take_inner(mut self) -> *mut nativeShutdownScript { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } impl Clone for ShutdownScript { fn clone(&self) -> Self { Self { - inner: if <*mut nativeShutdownScript>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeShutdownScript>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -133,7 +135,7 @@ impl InvalidShutdownScript { pub(crate) fn take_inner(mut self) -> *mut nativeInvalidShutdownScript { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -163,7 +165,7 @@ pub extern "C" fn InvalidShutdownScript_new(mut script_arg: crate::c_types::deri impl Clone for InvalidShutdownScript { fn clone(&self) -> Self { Self { - inner: if <*mut nativeInvalidShutdownScript>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeInvalidShutdownScript>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } diff --git a/lightning-c-bindings/src/lightning/ln/wire.rs b/lightning-c-bindings/src/lightning/ln/wire.rs index 5a943a2..d0ae9fc 100644 --- a/lightning-c-bindings/src/lightning/ln/wire.rs +++ b/lightning-c-bindings/src/lightning/ln/wire.rs @@ -11,11 +11,13 @@ //! //! [BOLT #1]: https://github.com/lightningnetwork/lightning-rfc/blob/master/01-messaging.md -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}; /// Trait to be implemented by custom message (unrelated to the channel/gossip LN layers) /// decoders. @@ -48,7 +50,7 @@ pub(crate) extern "C" fn CustomMessageReader_clone_fields(orig: &CustomMessageRe use lightning::ln::wire::CustomMessageReader as rustCustomMessageReader; impl rustCustomMessageReader for CustomMessageReader { type CustomMessage = crate::lightning::ln::wire::Type; - fn read(&self, mut message_type: u16, mut buffer: &mut R) -> Result, lightning::ln::msgs::DecodeError> { + fn read(&self, mut message_type: u16, mut buffer: &mut R) -> Result, lightning::ln::msgs::DecodeError> { let mut ret = (self.read)(self.this_arg, message_type, crate::c_types::u8slice::from_vec(&crate::c_types::reader_to_vec(buffer))); let mut local_ret = match ret.result_ok { true => Ok( { let mut local_ret_0 = { /* (*unsafe { Box::from_raw(<*mut _>::take_ptr(&mut ret.contents.result)) })*/ let ret_0_opt = (*unsafe { Box::from_raw(<*mut _>::take_ptr(&mut ret.contents.result)) }); { } if ret_0_opt.is_none() { None } else { Some({ ret_0_opt.take() }) } }; local_ret_0 }), false => Err( { *unsafe { Box::from_raw((*unsafe { Box::from_raw(<*mut _>::take_ptr(&mut ret.contents.err)) }).take_inner()) } })}; local_ret @@ -57,7 +59,7 @@ impl rustCustomMessageReader for CustomMessageReader { // We're essentially a pointer already, or at least a set of pointers, so allow us to be used // directly as a Deref trait in higher-level structs: -impl std::ops::Deref for CustomMessageReader { +impl core::ops::Deref for CustomMessageReader { type Target = Self; fn deref(&self) -> &Self { self @@ -75,11 +77,13 @@ impl Drop for CustomMessageReader { } mod encode { -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}; } /// Defines a type identifier for sending messages over the wire. @@ -119,7 +123,7 @@ impl core::fmt::Debug for Type { } } impl lightning::util::ser::Writeable for Type { - fn write(&self, w: &mut W) -> Result<(), ::std::io::Error> { + fn write(&self, w: &mut W) -> Result<(), crate::c_types::io::Error> { let vec = (self.write)(self.this_arg); w.write_all(vec.as_slice()) } @@ -135,7 +139,7 @@ impl rustType for Type { // We're essentially a pointer already, or at least a set of pointers, so allow us to be used // directly as a Deref trait in higher-level structs: -impl std::ops::Deref for Type { +impl core::ops::Deref for Type { type Target = Self; fn deref(&self) -> &Self { self diff --git a/lightning-c-bindings/src/lightning/mod.rs b/lightning-c-bindings/src/lightning/mod.rs index 659087a..7fbf935 100644 --- a/lightning-c-bindings/src/lightning/mod.rs +++ b/lightning-c-bindings/src/lightning/mod.rs @@ -16,11 +16,13 @@ //! generated/etc. This makes it a good candidate for tight integration into an existing wallet //! instead of having a rather-separate lightning appendage to a wallet. -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}; pub mod util; pub mod chain; @@ -28,10 +30,12 @@ pub mod ln; pub mod routing; mod prelude { -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}; } diff --git a/lightning-c-bindings/src/lightning/routing/mod.rs b/lightning-c-bindings/src/lightning/routing/mod.rs index 40f2cd2..2786656 100644 --- a/lightning-c-bindings/src/lightning/routing/mod.rs +++ b/lightning-c-bindings/src/lightning/routing/mod.rs @@ -8,11 +8,13 @@ //! Structs and impls for receiving messages about the network and storing the topology 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}; pub mod network_graph; pub mod router; diff --git a/lightning-c-bindings/src/lightning/routing/network_graph.rs b/lightning-c-bindings/src/lightning/routing/network_graph.rs index 6356160..15fd9c4 100644 --- a/lightning-c-bindings/src/lightning/routing/network_graph.rs +++ b/lightning-c-bindings/src/lightning/routing/network_graph.rs @@ -8,11 +8,13 @@ //! The top-level network map tracking logic lives 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}; use lightning::routing::network_graph::NodeId as nativeNodeIdImport; @@ -61,14 +63,14 @@ impl NodeId { pub(crate) fn take_inner(mut self) -> *mut nativeNodeId { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } impl Clone for NodeId { fn clone(&self) -> Self { Self { - inner: if <*mut nativeNodeId>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeNodeId>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -105,11 +107,11 @@ pub extern "C" fn NodeId_as_slice(this_arg: &NodeId) -> crate::c_types::u8slice #[no_mangle] pub extern "C" fn NodeId_hash(o: &NodeId) -> u64 { if o.inner.is_null() { return 0; } - // Note that we'd love to use std::collections::hash_map::DefaultHasher but it's not in core + // Note that we'd love to use alloc::collections::hash_map::DefaultHasher but it's not in core #[allow(deprecated)] let mut hasher = core::hash::SipHasher::new(); - std::hash::Hash::hash(o.get_native_ref(), &mut hasher); - std::hash::Hasher::finish(&hasher) + core::hash::Hash::hash(o.get_native_ref(), &mut hasher); + core::hash::Hasher::finish(&hasher) } #[no_mangle] /// Serialize the NodeId object into a byte array which can be read by NodeId_read @@ -174,14 +176,14 @@ impl NetworkGraph { pub(crate) fn take_inner(mut self) -> *mut nativeNetworkGraph { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } impl Clone for NetworkGraph { fn clone(&self) -> Self { Self { - inner: if <*mut nativeNetworkGraph>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeNetworkGraph>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -244,7 +246,7 @@ impl ReadOnlyNetworkGraph { pub(crate) fn take_inner(mut self) -> *mut nativeReadOnlyNetworkGraph { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -430,7 +432,7 @@ impl From for crate::lightning::util::events::EventHan let mut rust_obj = NetGraphMsgHandler { inner: ObjOps::heap_alloc(obj), is_owned: true }; let mut ret = NetGraphMsgHandler_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 - rust_obj.inner = std::ptr::null_mut(); + rust_obj.inner = core::ptr::null_mut(); ret.free = Some(NetGraphMsgHandler_free_void); ret } @@ -504,7 +506,7 @@ impl NetGraphMsgHandler { pub(crate) fn take_inner(mut self) -> *mut nativeNetGraphMsgHandler { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -535,7 +537,7 @@ impl From for crate::lightning::ln::msgs::RoutingMessa let mut rust_obj = NetGraphMsgHandler { inner: ObjOps::heap_alloc(obj), is_owned: true }; let mut ret = NetGraphMsgHandler_as_RoutingMessageHandler(&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(); + rust_obj.inner = core::ptr::null_mut(); ret.free = Some(NetGraphMsgHandler_free_void); ret } @@ -586,7 +588,7 @@ extern "C" fn NetGraphMsgHandler_RoutingMessageHandler_handle_channel_update(thi #[must_use] extern "C" fn NetGraphMsgHandler_RoutingMessageHandler_get_next_channel_announcements(this_arg: *const c_void, mut starting_point: u64, mut batch_amount: u8) -> crate::c_types::derived::CVec_C3Tuple_ChannelAnnouncementChannelUpdateChannelUpdateZZ { let mut ret = >::get_next_channel_announcements(unsafe { &mut *(this_arg as *mut nativeNetGraphMsgHandler) }, starting_point, batch_amount); - let mut local_ret = Vec::new(); for mut item in ret.drain(..) { local_ret.push( { let (mut orig_ret_0_0, mut orig_ret_0_1, mut orig_ret_0_2) = item; let mut local_orig_ret_0_1 = crate::lightning::ln::msgs::ChannelUpdate { inner: if orig_ret_0_1.is_none() { std::ptr::null_mut() } else { { ObjOps::heap_alloc((orig_ret_0_1.unwrap())) } }, is_owned: true }; let mut local_orig_ret_0_2 = crate::lightning::ln::msgs::ChannelUpdate { inner: if orig_ret_0_2.is_none() { std::ptr::null_mut() } else { { ObjOps::heap_alloc((orig_ret_0_2.unwrap())) } }, is_owned: true }; let mut local_ret_0 = (crate::lightning::ln::msgs::ChannelAnnouncement { inner: ObjOps::heap_alloc(orig_ret_0_0), is_owned: true }, local_orig_ret_0_1, local_orig_ret_0_2).into(); local_ret_0 }); }; + let mut local_ret = Vec::new(); for mut item in ret.drain(..) { local_ret.push( { let (mut orig_ret_0_0, mut orig_ret_0_1, mut orig_ret_0_2) = item; let mut local_orig_ret_0_1 = crate::lightning::ln::msgs::ChannelUpdate { inner: if orig_ret_0_1.is_none() { core::ptr::null_mut() } else { { ObjOps::heap_alloc((orig_ret_0_1.unwrap())) } }, is_owned: true }; let mut local_orig_ret_0_2 = crate::lightning::ln::msgs::ChannelUpdate { inner: if orig_ret_0_2.is_none() { core::ptr::null_mut() } else { { ObjOps::heap_alloc((orig_ret_0_2.unwrap())) } }, is_owned: true }; let mut local_ret_0 = (crate::lightning::ln::msgs::ChannelAnnouncement { inner: ObjOps::heap_alloc(orig_ret_0_0), is_owned: true }, local_orig_ret_0_1, local_orig_ret_0_2).into(); local_ret_0 }); }; local_ret.into() } #[must_use] @@ -629,7 +631,7 @@ impl From for crate::lightning::util::events::MessageS let mut rust_obj = NetGraphMsgHandler { inner: ObjOps::heap_alloc(obj), is_owned: true }; let mut ret = NetGraphMsgHandler_as_MessageSendEventsProvider(&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(); + rust_obj.inner = core::ptr::null_mut(); ret.free = Some(NetGraphMsgHandler_free_void); ret } @@ -700,7 +702,7 @@ impl DirectionalChannelInfo { pub(crate) fn take_inner(mut self) -> *mut nativeDirectionalChannelInfo { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -783,7 +785,7 @@ pub extern "C" fn DirectionalChannelInfo_set_fees(this_ptr: &mut DirectionalChan #[no_mangle] pub extern "C" fn DirectionalChannelInfo_get_last_update_message(this_ptr: &DirectionalChannelInfo) -> crate::lightning::ln::msgs::ChannelUpdate { let mut inner_val = &mut this_ptr.get_native_mut_ref().last_update_message; - let mut local_inner_val = crate::lightning::ln::msgs::ChannelUpdate { inner: unsafe { (if inner_val.is_none() { std::ptr::null() } else { ObjOps::nonnull_ptr_to_inner( { (inner_val.as_ref().unwrap()) }) } as *const lightning::ln::msgs::ChannelUpdate<>) as *mut _ }, is_owned: false }; + let mut local_inner_val = crate::lightning::ln::msgs::ChannelUpdate { inner: unsafe { (if inner_val.is_none() { core::ptr::null() } else { ObjOps::nonnull_ptr_to_inner( { (inner_val.as_ref().unwrap()) }) } as *const lightning::ln::msgs::ChannelUpdate<>) as *mut _ }, is_owned: false }; local_inner_val } /// Most recent update for the channel received from the network @@ -816,7 +818,7 @@ pub extern "C" fn DirectionalChannelInfo_new(mut last_update_arg: u32, mut enabl impl Clone for DirectionalChannelInfo { fn clone(&self) -> Self { Self { - inner: if <*mut nativeDirectionalChannelInfo>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeDirectionalChannelInfo>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -896,7 +898,7 @@ impl ChannelInfo { pub(crate) fn take_inner(mut self) -> *mut nativeChannelInfo { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -928,7 +930,7 @@ pub extern "C" fn ChannelInfo_set_node_one(this_ptr: &mut ChannelInfo, mut val: #[no_mangle] pub extern "C" fn ChannelInfo_get_one_to_two(this_ptr: &ChannelInfo) -> crate::lightning::routing::network_graph::DirectionalChannelInfo { let mut inner_val = &mut this_ptr.get_native_mut_ref().one_to_two; - let mut local_inner_val = crate::lightning::routing::network_graph::DirectionalChannelInfo { inner: unsafe { (if inner_val.is_none() { std::ptr::null() } else { ObjOps::nonnull_ptr_to_inner( { (inner_val.as_ref().unwrap()) }) } as *const lightning::routing::network_graph::DirectionalChannelInfo<>) as *mut _ }, is_owned: false }; + let mut local_inner_val = crate::lightning::routing::network_graph::DirectionalChannelInfo { inner: unsafe { (if inner_val.is_none() { core::ptr::null() } else { ObjOps::nonnull_ptr_to_inner( { (inner_val.as_ref().unwrap()) }) } as *const lightning::routing::network_graph::DirectionalChannelInfo<>) as *mut _ }, is_owned: false }; local_inner_val } /// Details about the first direction of a channel @@ -956,7 +958,7 @@ pub extern "C" fn ChannelInfo_set_node_two(this_ptr: &mut ChannelInfo, mut val: #[no_mangle] pub extern "C" fn ChannelInfo_get_two_to_one(this_ptr: &ChannelInfo) -> crate::lightning::routing::network_graph::DirectionalChannelInfo { let mut inner_val = &mut this_ptr.get_native_mut_ref().two_to_one; - let mut local_inner_val = crate::lightning::routing::network_graph::DirectionalChannelInfo { inner: unsafe { (if inner_val.is_none() { std::ptr::null() } else { ObjOps::nonnull_ptr_to_inner( { (inner_val.as_ref().unwrap()) }) } as *const lightning::routing::network_graph::DirectionalChannelInfo<>) as *mut _ }, is_owned: false }; + let mut local_inner_val = crate::lightning::routing::network_graph::DirectionalChannelInfo { inner: unsafe { (if inner_val.is_none() { core::ptr::null() } else { ObjOps::nonnull_ptr_to_inner( { (inner_val.as_ref().unwrap()) }) } as *const lightning::routing::network_graph::DirectionalChannelInfo<>) as *mut _ }, is_owned: false }; local_inner_val } /// Details about the second direction of a channel @@ -989,7 +991,7 @@ pub extern "C" fn ChannelInfo_set_capacity_sats(this_ptr: &mut ChannelInfo, mut #[no_mangle] pub extern "C" fn ChannelInfo_get_announcement_message(this_ptr: &ChannelInfo) -> crate::lightning::ln::msgs::ChannelAnnouncement { let mut inner_val = &mut this_ptr.get_native_mut_ref().announcement_message; - let mut local_inner_val = crate::lightning::ln::msgs::ChannelAnnouncement { inner: unsafe { (if inner_val.is_none() { std::ptr::null() } else { ObjOps::nonnull_ptr_to_inner( { (inner_val.as_ref().unwrap()) }) } as *const lightning::ln::msgs::ChannelAnnouncement<>) as *mut _ }, is_owned: false }; + let mut local_inner_val = crate::lightning::ln::msgs::ChannelAnnouncement { inner: unsafe { (if inner_val.is_none() { core::ptr::null() } else { ObjOps::nonnull_ptr_to_inner( { (inner_val.as_ref().unwrap()) }) } as *const lightning::ln::msgs::ChannelAnnouncement<>) as *mut _ }, is_owned: false }; local_inner_val } /// An initial announcement of the channel @@ -1006,7 +1008,7 @@ pub extern "C" fn ChannelInfo_set_announcement_message(this_ptr: &mut ChannelInf impl Clone for ChannelInfo { fn clone(&self) -> Self { Self { - inner: if <*mut nativeChannelInfo>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeChannelInfo>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -1085,7 +1087,7 @@ impl RoutingFees { pub(crate) fn take_inner(mut self) -> *mut nativeRoutingFees { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -1134,7 +1136,7 @@ pub extern "C" fn RoutingFees_eq(a: &RoutingFees, b: &RoutingFees) -> bool { impl Clone for RoutingFees { fn clone(&self) -> Self { Self { - inner: if <*mut nativeRoutingFees>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeRoutingFees>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -1154,11 +1156,11 @@ pub extern "C" fn RoutingFees_clone(orig: &RoutingFees) -> RoutingFees { #[no_mangle] pub extern "C" fn RoutingFees_hash(o: &RoutingFees) -> u64 { if o.inner.is_null() { return 0; } - // Note that we'd love to use std::collections::hash_map::DefaultHasher but it's not in core + // Note that we'd love to use alloc::collections::hash_map::DefaultHasher but it's not in core #[allow(deprecated)] let mut hasher = core::hash::SipHasher::new(); - std::hash::Hash::hash(o.get_native_ref(), &mut hasher); - std::hash::Hasher::finish(&hasher) + core::hash::Hash::hash(o.get_native_ref(), &mut hasher); + core::hash::Hasher::finish(&hasher) } #[no_mangle] /// Serialize the RoutingFees object into a byte array which can be read by RoutingFees_read @@ -1223,7 +1225,7 @@ impl NodeAnnouncementInfo { pub(crate) fn take_inner(mut self) -> *mut nativeNodeAnnouncementInfo { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -1292,7 +1294,7 @@ pub extern "C" fn NodeAnnouncementInfo_set_addresses(this_ptr: &mut NodeAnnounce #[no_mangle] pub extern "C" fn NodeAnnouncementInfo_get_announcement_message(this_ptr: &NodeAnnouncementInfo) -> crate::lightning::ln::msgs::NodeAnnouncement { let mut inner_val = &mut this_ptr.get_native_mut_ref().announcement_message; - let mut local_inner_val = crate::lightning::ln::msgs::NodeAnnouncement { inner: unsafe { (if inner_val.is_none() { std::ptr::null() } else { ObjOps::nonnull_ptr_to_inner( { (inner_val.as_ref().unwrap()) }) } as *const lightning::ln::msgs::NodeAnnouncement<>) as *mut _ }, is_owned: false }; + let mut local_inner_val = crate::lightning::ln::msgs::NodeAnnouncement { inner: unsafe { (if inner_val.is_none() { core::ptr::null() } else { ObjOps::nonnull_ptr_to_inner( { (inner_val.as_ref().unwrap()) }) } as *const lightning::ln::msgs::NodeAnnouncement<>) as *mut _ }, is_owned: false }; local_inner_val } /// An initial announcement of the node @@ -1324,7 +1326,7 @@ pub extern "C" fn NodeAnnouncementInfo_new(mut features_arg: crate::lightning::l impl Clone for NodeAnnouncementInfo { fn clone(&self) -> Self { Self { - inner: if <*mut nativeNodeAnnouncementInfo>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeNodeAnnouncementInfo>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -1403,7 +1405,7 @@ impl NodeInfo { pub(crate) fn take_inner(mut self) -> *mut nativeNodeInfo { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -1421,7 +1423,7 @@ pub extern "C" fn NodeInfo_set_channels(this_ptr: &mut NodeInfo, mut val: crate: #[no_mangle] pub extern "C" fn NodeInfo_get_lowest_inbound_channel_fees(this_ptr: &NodeInfo) -> crate::lightning::routing::network_graph::RoutingFees { let mut inner_val = &mut this_ptr.get_native_mut_ref().lowest_inbound_channel_fees; - let mut local_inner_val = crate::lightning::routing::network_graph::RoutingFees { inner: unsafe { (if inner_val.is_none() { std::ptr::null() } else { ObjOps::nonnull_ptr_to_inner( { (inner_val.as_ref().unwrap()) }) } as *const lightning::routing::network_graph::RoutingFees<>) as *mut _ }, is_owned: false }; + let mut local_inner_val = crate::lightning::routing::network_graph::RoutingFees { inner: unsafe { (if inner_val.is_none() { core::ptr::null() } else { ObjOps::nonnull_ptr_to_inner( { (inner_val.as_ref().unwrap()) }) } as *const lightning::routing::network_graph::RoutingFees<>) as *mut _ }, is_owned: false }; local_inner_val } /// Lowest fees enabling routing via any of the enabled, known channels to a node. @@ -1442,7 +1444,7 @@ pub extern "C" fn NodeInfo_set_lowest_inbound_channel_fees(this_ptr: &mut NodeIn #[no_mangle] pub extern "C" fn NodeInfo_get_announcement_info(this_ptr: &NodeInfo) -> crate::lightning::routing::network_graph::NodeAnnouncementInfo { let mut inner_val = &mut this_ptr.get_native_mut_ref().announcement_info; - let mut local_inner_val = crate::lightning::routing::network_graph::NodeAnnouncementInfo { inner: unsafe { (if inner_val.is_none() { std::ptr::null() } else { ObjOps::nonnull_ptr_to_inner( { (inner_val.as_ref().unwrap()) }) } as *const lightning::routing::network_graph::NodeAnnouncementInfo<>) as *mut _ }, is_owned: false }; + let mut local_inner_val = crate::lightning::routing::network_graph::NodeAnnouncementInfo { inner: unsafe { (if inner_val.is_none() { core::ptr::null() } else { ObjOps::nonnull_ptr_to_inner( { (inner_val.as_ref().unwrap()) }) } as *const lightning::routing::network_graph::NodeAnnouncementInfo<>) as *mut _ }, is_owned: false }; local_inner_val } /// More information about a node from node_announcement. @@ -1471,7 +1473,7 @@ pub extern "C" fn NodeInfo_new(mut channels_arg: crate::c_types::derived::CVec_u impl Clone for NodeInfo { fn clone(&self) -> Self { Self { - inner: if <*mut nativeNodeInfo>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeNodeInfo>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } diff --git a/lightning-c-bindings/src/lightning/routing/router.rs b/lightning-c-bindings/src/lightning/routing/router.rs index af38952..4e2a6f2 100644 --- a/lightning-c-bindings/src/lightning/routing/router.rs +++ b/lightning-c-bindings/src/lightning/routing/router.rs @@ -11,11 +11,13 @@ //! You probably want to create a NetGraphMsgHandler and use that as your RoutingMessageHandler and then //! interrogate it to get routes for your own payments. -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}; use lightning::routing::router::RouteHop as nativeRouteHopImport; @@ -64,7 +66,7 @@ impl RouteHop { pub(crate) fn take_inner(mut self) -> *mut nativeRouteHop { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -160,7 +162,7 @@ pub extern "C" fn RouteHop_new(mut pubkey_arg: crate::c_types::PublicKey, mut no impl Clone for RouteHop { fn clone(&self) -> Self { Self { - inner: if <*mut nativeRouteHop>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeRouteHop>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -180,11 +182,11 @@ pub extern "C" fn RouteHop_clone(orig: &RouteHop) -> RouteHop { #[no_mangle] pub extern "C" fn RouteHop_hash(o: &RouteHop) -> u64 { if o.inner.is_null() { return 0; } - // Note that we'd love to use std::collections::hash_map::DefaultHasher but it's not in core + // Note that we'd love to use alloc::collections::hash_map::DefaultHasher but it's not in core #[allow(deprecated)] let mut hasher = core::hash::SipHasher::new(); - std::hash::Hash::hash(o.get_native_ref(), &mut hasher); - std::hash::Hasher::finish(&hasher) + core::hash::Hash::hash(o.get_native_ref(), &mut hasher); + core::hash::Hasher::finish(&hasher) } /// Checks if two RouteHops contain equal inner contents. /// This ignores pointers and is_owned flags and looks at the values in fields. @@ -259,7 +261,7 @@ impl Route { pub(crate) fn take_inner(mut self) -> *mut nativeRoute { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -296,7 +298,7 @@ pub extern "C" fn Route_set_paths(this_ptr: &mut Route, mut val: crate::c_types: #[no_mangle] pub extern "C" fn Route_get_payee(this_ptr: &Route) -> crate::lightning::routing::router::Payee { let mut inner_val = &mut this_ptr.get_native_mut_ref().payee; - let mut local_inner_val = crate::lightning::routing::router::Payee { inner: unsafe { (if inner_val.is_none() { std::ptr::null() } else { ObjOps::nonnull_ptr_to_inner( { (inner_val.as_ref().unwrap()) }) } as *const lightning::routing::router::Payee<>) as *mut _ }, is_owned: false }; + let mut local_inner_val = crate::lightning::routing::router::Payee { inner: unsafe { (if inner_val.is_none() { core::ptr::null() } else { ObjOps::nonnull_ptr_to_inner( { (inner_val.as_ref().unwrap()) }) } as *const lightning::routing::router::Payee<>) as *mut _ }, is_owned: false }; local_inner_val } /// The `payee` parameter passed to [`find_route`]. @@ -325,7 +327,7 @@ pub extern "C" fn Route_new(mut paths_arg: crate::c_types::derived::CVec_CVec_Ro impl Clone for Route { fn clone(&self) -> Self { Self { - inner: if <*mut nativeRoute>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeRoute>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -345,11 +347,11 @@ pub extern "C" fn Route_clone(orig: &Route) -> Route { #[no_mangle] pub extern "C" fn Route_hash(o: &Route) -> u64 { if o.inner.is_null() { return 0; } - // Note that we'd love to use std::collections::hash_map::DefaultHasher but it's not in core + // Note that we'd love to use alloc::collections::hash_map::DefaultHasher but it's not in core #[allow(deprecated)] let mut hasher = core::hash::SipHasher::new(); - std::hash::Hash::hash(o.get_native_ref(), &mut hasher); - std::hash::Hasher::finish(&hasher) + core::hash::Hash::hash(o.get_native_ref(), &mut hasher); + core::hash::Hasher::finish(&hasher) } /// Checks if two Routes contain equal inner contents. /// This ignores pointers and is_owned flags and looks at the values in fields. @@ -447,7 +449,7 @@ impl RouteParameters { pub(crate) fn take_inner(mut self) -> *mut nativeRouteParameters { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -497,7 +499,7 @@ pub extern "C" fn RouteParameters_new(mut payee_arg: crate::lightning::routing:: impl Clone for RouteParameters { fn clone(&self) -> Self { Self { - inner: if <*mut nativeRouteParameters>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeRouteParameters>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -576,7 +578,7 @@ impl Payee { pub(crate) fn take_inner(mut self) -> *mut nativePayee { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -602,7 +604,7 @@ pub extern "C" fn Payee_set_pubkey(this_ptr: &mut Payee, mut val: crate::c_types #[no_mangle] pub extern "C" fn Payee_get_features(this_ptr: &Payee) -> crate::lightning::ln::features::InvoiceFeatures { let mut inner_val = &mut this_ptr.get_native_mut_ref().features; - let mut local_inner_val = crate::lightning::ln::features::InvoiceFeatures { inner: unsafe { (if inner_val.is_none() { std::ptr::null() } else { ObjOps::nonnull_ptr_to_inner( { (inner_val.as_ref().unwrap()) }) } as *const lightning::ln::features::InvoiceFeatures<>) as *mut _ }, is_owned: false }; + let mut local_inner_val = crate::lightning::ln::features::InvoiceFeatures { inner: unsafe { (if inner_val.is_none() { core::ptr::null() } else { ObjOps::nonnull_ptr_to_inner( { (inner_val.as_ref().unwrap()) }) } as *const lightning::ln::features::InvoiceFeatures<>) as *mut _ }, is_owned: false }; local_inner_val } /// Features supported by the payee. @@ -661,7 +663,7 @@ pub extern "C" fn Payee_new(mut pubkey_arg: crate::c_types::PublicKey, mut featu impl Clone for Payee { fn clone(&self) -> Self { Self { - inner: if <*mut nativePayee>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativePayee>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -681,11 +683,11 @@ pub extern "C" fn Payee_clone(orig: &Payee) -> Payee { #[no_mangle] pub extern "C" fn Payee_hash(o: &Payee) -> u64 { if o.inner.is_null() { return 0; } - // Note that we'd love to use std::collections::hash_map::DefaultHasher but it's not in core + // Note that we'd love to use alloc::collections::hash_map::DefaultHasher but it's not in core #[allow(deprecated)] let mut hasher = core::hash::SipHasher::new(); - std::hash::Hash::hash(o.get_native_ref(), &mut hasher); - std::hash::Hasher::finish(&hasher) + core::hash::Hash::hash(o.get_native_ref(), &mut hasher); + core::hash::Hasher::finish(&hasher) } /// Checks if two Payees contain equal inner contents. /// This ignores pointers and is_owned flags and looks at the values in fields. @@ -775,7 +777,7 @@ impl RouteHint { pub(crate) fn take_inner(mut self) -> *mut nativeRouteHint { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -802,7 +804,7 @@ pub extern "C" fn RouteHint_new(mut a_arg: crate::c_types::derived::CVec_RouteHi impl Clone for RouteHint { fn clone(&self) -> Self { Self { - inner: if <*mut nativeRouteHint>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeRouteHint>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -822,11 +824,11 @@ pub extern "C" fn RouteHint_clone(orig: &RouteHint) -> RouteHint { #[no_mangle] pub extern "C" fn RouteHint_hash(o: &RouteHint) -> u64 { if o.inner.is_null() { return 0; } - // Note that we'd love to use std::collections::hash_map::DefaultHasher but it's not in core + // Note that we'd love to use alloc::collections::hash_map::DefaultHasher but it's not in core #[allow(deprecated)] let mut hasher = core::hash::SipHasher::new(); - std::hash::Hash::hash(o.get_native_ref(), &mut hasher); - std::hash::Hasher::finish(&hasher) + core::hash::Hash::hash(o.get_native_ref(), &mut hasher); + core::hash::Hasher::finish(&hasher) } /// Checks if two RouteHints contain equal inner contents. /// This ignores pointers and is_owned flags and looks at the values in fields. @@ -900,7 +902,7 @@ impl RouteHintHop { pub(crate) fn take_inner(mut self) -> *mut nativeRouteHintHop { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -992,7 +994,7 @@ pub extern "C" fn RouteHintHop_new(mut src_node_id_arg: crate::c_types::PublicKe impl Clone for RouteHintHop { fn clone(&self) -> Self { Self { - inner: if <*mut nativeRouteHintHop>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeRouteHintHop>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -1012,11 +1014,11 @@ pub extern "C" fn RouteHintHop_clone(orig: &RouteHintHop) -> RouteHintHop { #[no_mangle] pub extern "C" fn RouteHintHop_hash(o: &RouteHintHop) -> u64 { if o.inner.is_null() { return 0; } - // Note that we'd love to use std::collections::hash_map::DefaultHasher but it's not in core + // Note that we'd love to use alloc::collections::hash_map::DefaultHasher but it's not in core #[allow(deprecated)] let mut hasher = core::hash::SipHasher::new(); - std::hash::Hash::hash(o.get_native_ref(), &mut hasher); - std::hash::Hasher::finish(&hasher) + core::hash::Hash::hash(o.get_native_ref(), &mut hasher); + core::hash::Hasher::finish(&hasher) } /// Checks if two RouteHintHops contain equal inner contents. /// This ignores pointers and is_owned flags and looks at the values in fields. @@ -1075,7 +1077,7 @@ pub extern "C" fn RouteHintHop_read(ser: crate::c_types::u8slice) -> crate::c_ty /// Note that first_hops (or a relevant inner pointer) may be NULL or all-0s to represent None #[no_mangle] pub extern "C" fn find_route(mut our_node_pubkey: crate::c_types::PublicKey, params: &crate::lightning::routing::router::RouteParameters, network: &crate::lightning::routing::network_graph::NetworkGraph, first_hops: *mut crate::c_types::derived::CVec_ChannelDetailsZ, mut logger: crate::lightning::util::logger::Logger, scorer: &crate::lightning::routing::scoring::Score) -> crate::c_types::derived::CResult_RouteLightningErrorZ { - let mut local_first_hops_base = if first_hops == std::ptr::null_mut() { None } else { Some( { let mut local_first_hops_0 = Vec::new(); for mut item in unsafe { &mut *first_hops }.as_slice().iter() { local_first_hops_0.push( { item.get_native_ref() }); }; local_first_hops_0 }) }; let mut local_first_hops = local_first_hops_base.as_ref().map(|a| &a[..]); + let mut local_first_hops_base = if first_hops == core::ptr::null_mut() { None } else { Some( { let mut local_first_hops_0 = Vec::new(); for mut item in unsafe { &mut *first_hops }.as_slice().iter() { local_first_hops_0.push( { item.get_native_ref() }); }; local_first_hops_0 }) }; let mut local_first_hops = local_first_hops_base.as_ref().map(|a| &a[..]); let mut ret = lightning::routing::router::find_route(&our_node_pubkey.into_rust(), params.get_native_ref(), network.get_native_ref(), local_first_hops, logger, scorer); let mut local_ret = match ret { Ok(mut o) => crate::c_types::CResultTempl::ok( { crate::lightning::routing::router::Route { inner: ObjOps::heap_alloc(o), is_owned: true } }).into(), Err(mut e) => crate::c_types::CResultTempl::err( { crate::lightning::ln::msgs::LightningError { inner: ObjOps::heap_alloc(e), is_owned: true } }).into() }; local_ret diff --git a/lightning-c-bindings/src/lightning/routing/scoring.rs b/lightning-c-bindings/src/lightning/routing/scoring.rs index bc3af0a..df292b1 100644 --- a/lightning-c-bindings/src/lightning/routing/scoring.rs +++ b/lightning-c-bindings/src/lightning/routing/scoring.rs @@ -50,11 +50,13 @@ //! //! [`find_route`]: crate::routing::router::find_route -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}; /// An interface used to score payment channels for path finding. /// @@ -102,7 +104,7 @@ pub(crate) extern "C" fn Score_clone_fields(orig: &Score) -> Score { } } impl lightning::util::ser::Writeable for Score { - fn write(&self, w: &mut W) -> Result<(), ::std::io::Error> { + fn write(&self, w: &mut W) -> Result<(), crate::c_types::io::Error> { let vec = (self.write)(self.this_arg); w.write_all(vec.as_slice()) } @@ -127,7 +129,7 @@ impl rustScore for Score { // We're essentially a pointer already, or at least a set of pointers, so allow us to be used // directly as a Deref trait in higher-level structs: -impl std::ops::Deref for Score { +impl core::ops::Deref for Score { type Target = Self; fn deref(&self) -> &Self { self @@ -185,7 +187,7 @@ impl<'a> rustLockableScore<'a> for LockableScore { // We're essentially a pointer already, or at least a set of pointers, so allow us to be used // directly as a Deref trait in higher-level structs: -impl std::ops::Deref for LockableScore { +impl core::ops::Deref for LockableScore { type Target = Self; fn deref(&self) -> &Self { self @@ -248,7 +250,7 @@ impl MultiThreadedLockableScore { pub(crate) fn take_inner(mut self) -> *mut nativeMultiThreadedLockableScore { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -314,7 +316,7 @@ impl Scorer { pub(crate) fn take_inner(mut self) -> *mut nativeScorer { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -365,7 +367,7 @@ impl ScoringParameters { pub(crate) fn take_inner(mut self) -> *mut nativeScoringParameters { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -482,7 +484,7 @@ pub extern "C" fn ScoringParameters_get_failure_penalty_half_life(this_ptr: &Sco /// [`failure_penalty_msat`]: Self::failure_penalty_msat #[no_mangle] pub extern "C" fn ScoringParameters_set_failure_penalty_half_life(this_ptr: &mut ScoringParameters, mut val: u64) { - unsafe { &mut *ObjOps::untweak_ptr(this_ptr.inner) }.failure_penalty_half_life = std::time::Duration::from_secs(val); + unsafe { &mut *ObjOps::untweak_ptr(this_ptr.inner) }.failure_penalty_half_life = core::time::Duration::from_secs(val); } /// Constructs a new ScoringParameters given each field #[must_use] @@ -493,7 +495,7 @@ pub extern "C" fn ScoringParameters_new(mut base_penalty_msat_arg: u64, mut fail failure_penalty_msat: failure_penalty_msat_arg, overuse_penalty_start_1024th: overuse_penalty_start_1024th_arg, overuse_penalty_msat_per_1024th: overuse_penalty_msat_per_1024th_arg, - failure_penalty_half_life: std::time::Duration::from_secs(failure_penalty_half_life_arg), + failure_penalty_half_life: core::time::Duration::from_secs(failure_penalty_half_life_arg), }), is_owned: true } } #[no_mangle] @@ -537,7 +539,7 @@ impl From for crate::lightning::routing::scoring::Score { let mut rust_obj = Scorer { inner: ObjOps::heap_alloc(obj), is_owned: true }; let mut ret = Scorer_as_Score(&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(); + rust_obj.inner = core::ptr::null_mut(); ret.free = Some(Scorer_free_void); ret } @@ -589,10 +591,12 @@ pub extern "C" fn Scorer_read(ser: crate::c_types::u8slice) -> crate::c_types::d } mod time { -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}; } diff --git a/lightning-c-bindings/src/lightning/util/config.rs b/lightning-c-bindings/src/lightning/util/config.rs index d1251b8..e8c7546 100644 --- a/lightning-c-bindings/src/lightning/util/config.rs +++ b/lightning-c-bindings/src/lightning/util/config.rs @@ -9,11 +9,13 @@ //! Various user-configurable channel limits and settings which ChannelManager //! applies for you. -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}; use lightning::util::config::ChannelHandshakeConfig as nativeChannelHandshakeConfigImport; @@ -64,7 +66,7 @@ impl ChannelHandshakeConfig { pub(crate) fn take_inner(mut self) -> *mut nativeChannelHandshakeConfig { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -162,7 +164,7 @@ pub extern "C" fn ChannelHandshakeConfig_new(mut minimum_depth_arg: u32, mut our impl Clone for ChannelHandshakeConfig { fn clone(&self) -> Self { Self { - inner: if <*mut nativeChannelHandshakeConfig>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeChannelHandshakeConfig>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -241,7 +243,7 @@ impl ChannelHandshakeLimits { pub(crate) fn take_inner(mut self) -> *mut nativeChannelHandshakeLimits { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -419,7 +421,7 @@ pub extern "C" fn ChannelHandshakeLimits_new(mut min_funding_satoshis_arg: u64, impl Clone for ChannelHandshakeLimits { fn clone(&self) -> Self { Self { - inner: if <*mut nativeChannelHandshakeLimits>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeChannelHandshakeLimits>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -489,7 +491,7 @@ impl ChannelConfig { pub(crate) fn take_inner(mut self) -> *mut nativeChannelConfig { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -765,7 +767,7 @@ pub extern "C" fn ChannelConfig_new(mut forwarding_fee_proportional_millionths_a impl Clone for ChannelConfig { fn clone(&self) -> Self { Self { - inner: if <*mut nativeChannelConfig>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeChannelConfig>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -853,7 +855,7 @@ impl UserConfig { pub(crate) fn take_inner(mut self) -> *mut nativeUserConfig { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -959,7 +961,7 @@ pub extern "C" fn UserConfig_new(mut own_channel_config_arg: crate::lightning::u impl Clone for UserConfig { fn clone(&self) -> Self { Self { - inner: if <*mut nativeUserConfig>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeUserConfig>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } diff --git a/lightning-c-bindings/src/lightning/util/errors.rs b/lightning-c-bindings/src/lightning/util/errors.rs index 229fe03..a3933b9 100644 --- a/lightning-c-bindings/src/lightning/util/errors.rs +++ b/lightning-c-bindings/src/lightning/util/errors.rs @@ -8,11 +8,13 @@ //! 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) diff --git a/lightning-c-bindings/src/lightning/util/events.rs b/lightning-c-bindings/src/lightning/util/events.rs index 1291bbc..e93bd66 100644 --- a/lightning-c-bindings/src/lightning/util/events.rs +++ b/lightning-c-bindings/src/lightning/util/events.rs @@ -13,11 +13,13 @@ //! future, as well as generate and broadcast funding transactions handle payment preimages and a //! few other things. -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}; /// Some information provided on receipt of payment depends on whether the payment received is a /// spontaneous payment or a \"conventional\" lightning payment that's paying an invoice. @@ -686,7 +688,7 @@ impl Event { Event::PendingHTLCsForwardable {ref time_forwardable, } => { let mut time_forwardable_nonref = (*time_forwardable).clone(); nativeEvent::PendingHTLCsForwardable { - time_forwardable: std::time::Duration::from_secs(time_forwardable_nonref), + time_forwardable: core::time::Duration::from_secs(time_forwardable_nonref), } }, Event::SpendableOutputs {ref outputs, } => { @@ -790,7 +792,7 @@ impl Event { }, Event::PendingHTLCsForwardable {mut time_forwardable, } => { nativeEvent::PendingHTLCsForwardable { - time_forwardable: std::time::Duration::from_secs(time_forwardable), + time_forwardable: core::time::Duration::from_secs(time_forwardable), } }, Event::SpendableOutputs {mut outputs, } => { @@ -882,7 +884,7 @@ impl Event { let mut short_channel_id_nonref = (*short_channel_id).clone(); let mut local_short_channel_id_nonref = if short_channel_id_nonref.is_none() { crate::c_types::derived::COption_u64Z::None } else { crate::c_types::derived::COption_u64Z::Some( { short_channel_id_nonref.unwrap() }) }; let mut retry_nonref = (*retry).clone(); - let mut local_retry_nonref = crate::lightning::routing::router::RouteParameters { inner: if retry_nonref.is_none() { std::ptr::null_mut() } else { { ObjOps::heap_alloc((retry_nonref.unwrap())) } }, is_owned: true }; + let mut local_retry_nonref = crate::lightning::routing::router::RouteParameters { inner: if retry_nonref.is_none() { core::ptr::null_mut() } else { { ObjOps::heap_alloc((retry_nonref.unwrap())) } }, is_owned: true }; Event::PaymentPathFailed { payment_id: local_payment_id_nonref, payment_hash: crate::c_types::ThirtyTwoBytes { data: payment_hash_nonref.0 }, @@ -989,7 +991,7 @@ impl Event { let mut local_network_update = if network_update.is_none() { crate::c_types::derived::COption_NetworkUpdateZ::None } else { crate::c_types::derived::COption_NetworkUpdateZ::Some( { crate::lightning::routing::network_graph::NetworkUpdate::native_into(network_update.unwrap()) }) }; let mut local_path = Vec::new(); for mut item in path.drain(..) { local_path.push( { crate::lightning::routing::router::RouteHop { inner: ObjOps::heap_alloc(item), is_owned: true } }); }; let mut local_short_channel_id = if short_channel_id.is_none() { crate::c_types::derived::COption_u64Z::None } else { crate::c_types::derived::COption_u64Z::Some( { short_channel_id.unwrap() }) }; - let mut local_retry = crate::lightning::routing::router::RouteParameters { inner: if retry.is_none() { std::ptr::null_mut() } else { { ObjOps::heap_alloc((retry.unwrap())) } }, is_owned: true }; + let mut local_retry = crate::lightning::routing::router::RouteParameters { inner: if retry.is_none() { core::ptr::null_mut() } else { { ObjOps::heap_alloc((retry.unwrap())) } }, is_owned: true }; Event::PaymentPathFailed { payment_id: local_payment_id, payment_hash: crate::c_types::ThirtyTwoBytes { data: payment_hash.0 }, @@ -2057,7 +2059,7 @@ impl rustMessageSendEventsProvider for MessageSendEventsProvider { // We're essentially a pointer already, or at least a set of pointers, so allow us to be used // directly as a Deref trait in higher-level structs: -impl std::ops::Deref for MessageSendEventsProvider { +impl core::ops::Deref for MessageSendEventsProvider { type Target = Self; fn deref(&self) -> &Self { self @@ -2168,7 +2170,7 @@ impl rustEventHandler for EventHandler { // We're essentially a pointer already, or at least a set of pointers, so allow us to be used // directly as a Deref trait in higher-level structs: -impl std::ops::Deref for EventHandler { +impl core::ops::Deref for EventHandler { type Target = Self; fn deref(&self) -> &Self { self diff --git a/lightning-c-bindings/src/lightning/util/logger.rs b/lightning-c-bindings/src/lightning/util/logger.rs index 7d0e795..411a34f 100644 --- a/lightning-c-bindings/src/lightning/util/logger.rs +++ b/lightning-c-bindings/src/lightning/util/logger.rs @@ -13,11 +13,13 @@ //! The second one, client-side by implementing check against Record Level field. //! Each module may have its own Logger or share one. -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}; /// An enum representing the available verbosity levels of the logger. #[must_use] @@ -122,11 +124,11 @@ pub extern "C" fn Level_eq(a: &Level, b: &Level) -> bool { /// Checks if two Levels contain equal inner contents. #[no_mangle] pub extern "C" fn Level_hash(o: &Level) -> u64 { - // Note that we'd love to use std::collections::hash_map::DefaultHasher but it's not in core + // Note that we'd love to use alloc::collections::hash_map::DefaultHasher but it's not in core #[allow(deprecated)] let mut hasher = core::hash::SipHasher::new(); - std::hash::Hash::hash(&o.to_native(), &mut hasher); - std::hash::Hasher::finish(&hasher) + core::hash::Hash::hash(&o.to_native(), &mut hasher); + core::hash::Hasher::finish(&hasher) } /// Returns the most verbose logging level. #[must_use] @@ -184,7 +186,7 @@ impl Record { pub(crate) fn take_inner(mut self) -> *mut nativeRecord { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -246,7 +248,7 @@ pub extern "C" fn Record_set_line(this_ptr: &mut Record, mut val: u32) { impl Clone for Record { fn clone(&self) -> Self { Self { - inner: if <*mut nativeRecord>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeRecord>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -294,7 +296,7 @@ impl rustLogger for Logger { // We're essentially a pointer already, or at least a set of pointers, so allow us to be used // directly as a Deref trait in higher-level structs: -impl std::ops::Deref for Logger { +impl core::ops::Deref for Logger { type Target = Self; fn deref(&self) -> &Self { self diff --git a/lightning-c-bindings/src/lightning/util/message_signing.rs b/lightning-c-bindings/src/lightning/util/message_signing.rs index 782d813..4dc8873 100644 --- a/lightning-c-bindings/src/lightning/util/message_signing.rs +++ b/lightning-c-bindings/src/lightning/util/message_signing.rs @@ -22,11 +22,13 @@ //! //! -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}; /// Creates a digital signature of a message given a SecretKey, like the node's secret. /// A receiver knowing the PublicKey (e.g. the node's id) and the message can be sure that the signature was generated by the caller. diff --git a/lightning-c-bindings/src/lightning/util/mod.rs b/lightning-c-bindings/src/lightning/util/mod.rs index 45d754b..c80ae77 100644 --- a/lightning-c-bindings/src/lightning/util/mod.rs +++ b/lightning-c-bindings/src/lightning/util/mod.rs @@ -8,11 +8,13 @@ //! Some utility modules live here. See individual sub-modules for more info. -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}; pub mod events; pub mod errors; @@ -22,118 +24,144 @@ pub mod logger; pub mod config; mod fuzz_wrappers { -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}; } mod ser_macros { -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}; } mod atomic_counter { -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}; } mod byte_utils { -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}; } mod chacha20 { -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}; mod real_chacha { -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}; } } mod zbase32 { -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}; } mod poly1305 { -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}; } mod chacha20poly1305rfc { -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}; mod real_chachapoly { -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}; } } mod transaction_utils { -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}; } mod scid_utils { -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}; } mod macro_logger { -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}; } diff --git a/lightning-c-bindings/src/lightning/util/ser.rs b/lightning-c-bindings/src/lightning/util/ser.rs index 6e9a501..511f3af 100644 --- a/lightning-c-bindings/src/lightning/util/ser.rs +++ b/lightning-c-bindings/src/lightning/util/ser.rs @@ -9,11 +9,13 @@ //! A very simple serialization framework which is used to serialize/deserialize messages as well //! as ChannelsManagers and ChannelMonitors. -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}; /// serialization buffer size diff --git a/lightning-c-bindings/src/lightning_background_processor.rs b/lightning-c-bindings/src/lightning_background_processor.rs index 5dc282a..0bd4452 100644 --- a/lightning-c-bindings/src/lightning_background_processor.rs +++ b/lightning-c-bindings/src/lightning_background_processor.rs @@ -10,11 +10,13 @@ //! running properly, and (2) either can or should be run in the background. See docs for //! [`BackgroundProcessor`] for more details on the nitty-gritty. -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}; use lightning_background_processor::BackgroundProcessor as nativeBackgroundProcessorImport; @@ -87,7 +89,7 @@ impl BackgroundProcessor { pub(crate) fn take_inner(mut self) -> *mut nativeBackgroundProcessor { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -131,7 +133,7 @@ impl rustChannelManagerPersister &Self { self diff --git a/lightning-c-bindings/src/lightning_invoice/constants.rs b/lightning-c-bindings/src/lightning_invoice/constants.rs index 3f14594..4486e0e 100644 --- a/lightning-c-bindings/src/lightning_invoice/constants.rs +++ b/lightning-c-bindings/src/lightning_invoice/constants.rs @@ -8,11 +8,13 @@ /// Tag constants as specified in BOLT11 -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}; #[no_mangle] diff --git a/lightning-c-bindings/src/lightning_invoice/mod.rs b/lightning-c-bindings/src/lightning_invoice/mod.rs index cb19024..12845c6 100644 --- a/lightning-c-bindings/src/lightning_invoice/mod.rs +++ b/lightning-c-bindings/src/lightning_invoice/mod.rs @@ -15,30 +15,36 @@ //! * For constructing invoices use the `InvoiceBuilder` //! * For serializing invoices use the `Display`/`ToString` traits -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}; pub mod payment; pub mod utils; pub mod constants; mod de { -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}; mod hrp_sm { -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}; } #[no_mangle] @@ -80,11 +86,13 @@ pub extern "C" fn SignedRawInvoice_from_str(s: crate::c_types::Str) -> crate::c_ } mod ser { -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}; #[no_mangle] /// Get the string representation of a Invoice object @@ -109,11 +117,13 @@ pub extern "C" fn SiPrefix_to_str(o: &crate::lightning_invoice::SiPrefix) -> Str } mod tb { -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}; } /// Default expiry time as defined by [BOLT 11]. @@ -202,7 +212,7 @@ impl Invoice { pub(crate) fn take_inner(mut self) -> *mut nativeInvoice { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -218,7 +228,7 @@ pub extern "C" fn Invoice_eq(a: &Invoice, b: &Invoice) -> bool { impl Clone for Invoice { fn clone(&self) -> Self { Self { - inner: if <*mut nativeInvoice>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeInvoice>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -285,7 +295,7 @@ impl SignedRawInvoice { pub(crate) fn take_inner(mut self) -> *mut nativeSignedRawInvoice { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -301,7 +311,7 @@ pub extern "C" fn SignedRawInvoice_eq(a: &SignedRawInvoice, b: &SignedRawInvoice impl Clone for SignedRawInvoice { fn clone(&self) -> Self { Self { - inner: if <*mut nativeSignedRawInvoice>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeSignedRawInvoice>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -368,7 +378,7 @@ impl RawInvoice { pub(crate) fn take_inner(mut self) -> *mut nativeRawInvoice { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -395,7 +405,7 @@ pub extern "C" fn RawInvoice_eq(a: &RawInvoice, b: &RawInvoice) -> bool { impl Clone for RawInvoice { fn clone(&self) -> Self { Self { - inner: if <*mut nativeRawInvoice>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeRawInvoice>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -458,7 +468,7 @@ impl RawDataPart { pub(crate) fn take_inner(mut self) -> *mut nativeRawDataPart { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -485,7 +495,7 @@ pub extern "C" fn RawDataPart_eq(a: &RawDataPart, b: &RawDataPart) -> bool { impl Clone for RawDataPart { fn clone(&self) -> Self { Self { - inner: if <*mut nativeRawDataPart>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeRawDataPart>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -553,7 +563,7 @@ impl PositiveTimestamp { pub(crate) fn take_inner(mut self) -> *mut nativePositiveTimestamp { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -569,7 +579,7 @@ pub extern "C" fn PositiveTimestamp_eq(a: &PositiveTimestamp, b: &PositiveTimest impl Clone for PositiveTimestamp { fn clone(&self) -> Self { Self { - inner: if <*mut nativePositiveTimestamp>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativePositiveTimestamp>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -761,11 +771,11 @@ pub extern "C" fn Currency_signet() -> Currency { /// Checks if two Currencys contain equal inner contents. #[no_mangle] pub extern "C" fn Currency_hash(o: &Currency) -> u64 { - // Note that we'd love to use std::collections::hash_map::DefaultHasher but it's not in core + // Note that we'd love to use alloc::collections::hash_map::DefaultHasher but it's not in core #[allow(deprecated)] let mut hasher = core::hash::SipHasher::new(); - std::hash::Hash::hash(&o.to_native(), &mut hasher); - std::hash::Hasher::finish(&hasher) + core::hash::Hash::hash(&o.to_native(), &mut hasher); + core::hash::Hasher::finish(&hasher) } /// Checks if two Currencys contain equal inner contents. /// This ignores pointers and is_owned flags and looks at the values in fields. @@ -820,14 +830,14 @@ impl Sha256 { pub(crate) fn take_inner(mut self) -> *mut nativeSha256 { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } impl Clone for Sha256 { fn clone(&self) -> Self { Self { - inner: if <*mut nativeSha256>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeSha256>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -847,11 +857,11 @@ pub extern "C" fn Sha256_clone(orig: &Sha256) -> Sha256 { #[no_mangle] pub extern "C" fn Sha256_hash(o: &Sha256) -> u64 { if o.inner.is_null() { return 0; } - // Note that we'd love to use std::collections::hash_map::DefaultHasher but it's not in core + // Note that we'd love to use alloc::collections::hash_map::DefaultHasher but it's not in core #[allow(deprecated)] let mut hasher = core::hash::SipHasher::new(); - std::hash::Hash::hash(o.get_native_ref(), &mut hasher); - std::hash::Hasher::finish(&hasher) + core::hash::Hash::hash(o.get_native_ref(), &mut hasher); + core::hash::Hasher::finish(&hasher) } /// Checks if two Sha256s contain equal inner contents. /// This ignores pointers and is_owned flags and looks at the values in fields. @@ -912,14 +922,14 @@ impl Description { pub(crate) fn take_inner(mut self) -> *mut nativeDescription { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } impl Clone for Description { fn clone(&self) -> Self { Self { - inner: if <*mut nativeDescription>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeDescription>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -939,11 +949,11 @@ pub extern "C" fn Description_clone(orig: &Description) -> Description { #[no_mangle] pub extern "C" fn Description_hash(o: &Description) -> u64 { if o.inner.is_null() { return 0; } - // Note that we'd love to use std::collections::hash_map::DefaultHasher but it's not in core + // Note that we'd love to use alloc::collections::hash_map::DefaultHasher but it's not in core #[allow(deprecated)] let mut hasher = core::hash::SipHasher::new(); - std::hash::Hash::hash(o.get_native_ref(), &mut hasher); - std::hash::Hasher::finish(&hasher) + core::hash::Hash::hash(o.get_native_ref(), &mut hasher); + core::hash::Hasher::finish(&hasher) } /// Checks if two Descriptions contain equal inner contents. /// This ignores pointers and is_owned flags and looks at the values in fields. @@ -1001,7 +1011,7 @@ impl PayeePubKey { pub(crate) fn take_inner(mut self) -> *mut nativePayeePubKey { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -1025,7 +1035,7 @@ pub extern "C" fn PayeePubKey_new(mut a_arg: crate::c_types::PublicKey) -> Payee impl Clone for PayeePubKey { fn clone(&self) -> Self { Self { - inner: if <*mut nativePayeePubKey>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativePayeePubKey>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -1045,11 +1055,11 @@ pub extern "C" fn PayeePubKey_clone(orig: &PayeePubKey) -> PayeePubKey { #[no_mangle] pub extern "C" fn PayeePubKey_hash(o: &PayeePubKey) -> u64 { if o.inner.is_null() { return 0; } - // Note that we'd love to use std::collections::hash_map::DefaultHasher but it's not in core + // Note that we'd love to use alloc::collections::hash_map::DefaultHasher but it's not in core #[allow(deprecated)] let mut hasher = core::hash::SipHasher::new(); - std::hash::Hash::hash(o.get_native_ref(), &mut hasher); - std::hash::Hasher::finish(&hasher) + core::hash::Hash::hash(o.get_native_ref(), &mut hasher); + core::hash::Hasher::finish(&hasher) } /// Checks if two PayeePubKeys contain equal inner contents. /// This ignores pointers and is_owned flags and looks at the values in fields. @@ -1113,14 +1123,14 @@ impl ExpiryTime { pub(crate) fn take_inner(mut self) -> *mut nativeExpiryTime { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } impl Clone for ExpiryTime { fn clone(&self) -> Self { Self { - inner: if <*mut nativeExpiryTime>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeExpiryTime>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -1140,11 +1150,11 @@ pub extern "C" fn ExpiryTime_clone(orig: &ExpiryTime) -> ExpiryTime { #[no_mangle] pub extern "C" fn ExpiryTime_hash(o: &ExpiryTime) -> u64 { if o.inner.is_null() { return 0; } - // Note that we'd love to use std::collections::hash_map::DefaultHasher but it's not in core + // Note that we'd love to use alloc::collections::hash_map::DefaultHasher but it's not in core #[allow(deprecated)] let mut hasher = core::hash::SipHasher::new(); - std::hash::Hash::hash(o.get_native_ref(), &mut hasher); - std::hash::Hasher::finish(&hasher) + core::hash::Hash::hash(o.get_native_ref(), &mut hasher); + core::hash::Hasher::finish(&hasher) } /// Checks if two ExpiryTimes contain equal inner contents. /// This ignores pointers and is_owned flags and looks at the values in fields. @@ -1202,7 +1212,7 @@ impl MinFinalCltvExpiry { pub(crate) fn take_inner(mut self) -> *mut nativeMinFinalCltvExpiry { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -1226,7 +1236,7 @@ pub extern "C" fn MinFinalCltvExpiry_new(mut a_arg: u64) -> MinFinalCltvExpiry { impl Clone for MinFinalCltvExpiry { fn clone(&self) -> Self { Self { - inner: if <*mut nativeMinFinalCltvExpiry>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeMinFinalCltvExpiry>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -1246,11 +1256,11 @@ pub extern "C" fn MinFinalCltvExpiry_clone(orig: &MinFinalCltvExpiry) -> MinFina #[no_mangle] pub extern "C" fn MinFinalCltvExpiry_hash(o: &MinFinalCltvExpiry) -> u64 { if o.inner.is_null() { return 0; } - // Note that we'd love to use std::collections::hash_map::DefaultHasher but it's not in core + // Note that we'd love to use alloc::collections::hash_map::DefaultHasher but it's not in core #[allow(deprecated)] let mut hasher = core::hash::SipHasher::new(); - std::hash::Hash::hash(o.get_native_ref(), &mut hasher); - std::hash::Hasher::finish(&hasher) + core::hash::Hash::hash(o.get_native_ref(), &mut hasher); + core::hash::Hasher::finish(&hasher) } /// Checks if two MinFinalCltvExpirys contain equal inner contents. /// This ignores pointers and is_owned flags and looks at the values in fields. @@ -1401,11 +1411,11 @@ pub extern "C" fn Fallback_script_hash(a: crate::c_types::TwentyBytes) -> Fallba /// Checks if two Fallbacks contain equal inner contents. #[no_mangle] pub extern "C" fn Fallback_hash(o: &Fallback) -> u64 { - // Note that we'd love to use std::collections::hash_map::DefaultHasher but it's not in core + // Note that we'd love to use alloc::collections::hash_map::DefaultHasher but it's not in core #[allow(deprecated)] let mut hasher = core::hash::SipHasher::new(); - std::hash::Hash::hash(&o.to_native(), &mut hasher); - std::hash::Hasher::finish(&hasher) + core::hash::Hash::hash(&o.to_native(), &mut hasher); + core::hash::Hasher::finish(&hasher) } /// Checks if two Fallbacks contain equal inner contents. /// This ignores pointers and is_owned flags and looks at the values in fields. @@ -1460,14 +1470,14 @@ impl InvoiceSignature { pub(crate) fn take_inner(mut self) -> *mut nativeInvoiceSignature { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } impl Clone for InvoiceSignature { fn clone(&self) -> Self { Self { - inner: if <*mut nativeInvoiceSignature>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeInvoiceSignature>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -1543,14 +1553,14 @@ impl PrivateRoute { pub(crate) fn take_inner(mut self) -> *mut nativePrivateRoute { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } impl Clone for PrivateRoute { fn clone(&self) -> Self { Self { - inner: if <*mut nativePrivateRoute>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativePrivateRoute>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -1570,11 +1580,11 @@ pub extern "C" fn PrivateRoute_clone(orig: &PrivateRoute) -> PrivateRoute { #[no_mangle] pub extern "C" fn PrivateRoute_hash(o: &PrivateRoute) -> u64 { if o.inner.is_null() { return 0; } - // Note that we'd love to use std::collections::hash_map::DefaultHasher but it's not in core + // Note that we'd love to use alloc::collections::hash_map::DefaultHasher but it's not in core #[allow(deprecated)] let mut hasher = core::hash::SipHasher::new(); - std::hash::Hash::hash(o.get_native_ref(), &mut hasher); - std::hash::Hasher::finish(&hasher) + core::hash::Hash::hash(o.get_native_ref(), &mut hasher); + core::hash::Hasher::finish(&hasher) } /// Checks if two PrivateRoutes contain equal inner contents. /// This ignores pointers and is_owned flags and looks at the values in fields. @@ -1653,7 +1663,7 @@ pub extern "C" fn RawInvoice_hash(this_arg: &RawInvoice) -> crate::c_types::Thir #[no_mangle] pub extern "C" fn RawInvoice_payment_hash(this_arg: &RawInvoice) -> crate::lightning_invoice::Sha256 { let mut ret = unsafe { &*ObjOps::untweak_ptr(this_arg.inner) }.payment_hash(); - let mut local_ret = crate::lightning_invoice::Sha256 { inner: unsafe { (if ret.is_none() { std::ptr::null() } else { ObjOps::nonnull_ptr_to_inner( { (ret.unwrap()) }) } as *const lightning_invoice::Sha256<>) as *mut _ }, is_owned: false }; + let mut local_ret = crate::lightning_invoice::Sha256 { inner: unsafe { (if ret.is_none() { core::ptr::null() } else { ObjOps::nonnull_ptr_to_inner( { (ret.unwrap()) }) } as *const lightning_invoice::Sha256<>) as *mut _ }, is_owned: false }; local_ret } @@ -1663,7 +1673,7 @@ pub extern "C" fn RawInvoice_payment_hash(this_arg: &RawInvoice) -> crate::light #[no_mangle] pub extern "C" fn RawInvoice_description(this_arg: &RawInvoice) -> crate::lightning_invoice::Description { let mut ret = unsafe { &*ObjOps::untweak_ptr(this_arg.inner) }.description(); - let mut local_ret = crate::lightning_invoice::Description { inner: unsafe { (if ret.is_none() { std::ptr::null() } else { ObjOps::nonnull_ptr_to_inner( { (ret.unwrap()) }) } as *const lightning_invoice::Description<>) as *mut _ }, is_owned: false }; + let mut local_ret = crate::lightning_invoice::Description { inner: unsafe { (if ret.is_none() { core::ptr::null() } else { ObjOps::nonnull_ptr_to_inner( { (ret.unwrap()) }) } as *const lightning_invoice::Description<>) as *mut _ }, is_owned: false }; local_ret } @@ -1673,7 +1683,7 @@ pub extern "C" fn RawInvoice_description(this_arg: &RawInvoice) -> crate::lightn #[no_mangle] pub extern "C" fn RawInvoice_payee_pub_key(this_arg: &RawInvoice) -> crate::lightning_invoice::PayeePubKey { let mut ret = unsafe { &*ObjOps::untweak_ptr(this_arg.inner) }.payee_pub_key(); - let mut local_ret = crate::lightning_invoice::PayeePubKey { inner: unsafe { (if ret.is_none() { std::ptr::null() } else { ObjOps::nonnull_ptr_to_inner( { (ret.unwrap()) }) } as *const lightning_invoice::PayeePubKey<>) as *mut _ }, is_owned: false }; + let mut local_ret = crate::lightning_invoice::PayeePubKey { inner: unsafe { (if ret.is_none() { core::ptr::null() } else { ObjOps::nonnull_ptr_to_inner( { (ret.unwrap()) }) } as *const lightning_invoice::PayeePubKey<>) as *mut _ }, is_owned: false }; local_ret } @@ -1683,7 +1693,7 @@ pub extern "C" fn RawInvoice_payee_pub_key(this_arg: &RawInvoice) -> crate::ligh #[no_mangle] pub extern "C" fn RawInvoice_description_hash(this_arg: &RawInvoice) -> crate::lightning_invoice::Sha256 { let mut ret = unsafe { &*ObjOps::untweak_ptr(this_arg.inner) }.description_hash(); - let mut local_ret = crate::lightning_invoice::Sha256 { inner: unsafe { (if ret.is_none() { std::ptr::null() } else { ObjOps::nonnull_ptr_to_inner( { (ret.unwrap()) }) } as *const lightning_invoice::Sha256<>) as *mut _ }, is_owned: false }; + let mut local_ret = crate::lightning_invoice::Sha256 { inner: unsafe { (if ret.is_none() { core::ptr::null() } else { ObjOps::nonnull_ptr_to_inner( { (ret.unwrap()) }) } as *const lightning_invoice::Sha256<>) as *mut _ }, is_owned: false }; local_ret } @@ -1693,7 +1703,7 @@ pub extern "C" fn RawInvoice_description_hash(this_arg: &RawInvoice) -> crate::l #[no_mangle] pub extern "C" fn RawInvoice_expiry_time(this_arg: &RawInvoice) -> crate::lightning_invoice::ExpiryTime { let mut ret = unsafe { &*ObjOps::untweak_ptr(this_arg.inner) }.expiry_time(); - let mut local_ret = crate::lightning_invoice::ExpiryTime { inner: unsafe { (if ret.is_none() { std::ptr::null() } else { ObjOps::nonnull_ptr_to_inner( { (ret.unwrap()) }) } as *const lightning_invoice::ExpiryTime<>) as *mut _ }, is_owned: false }; + let mut local_ret = crate::lightning_invoice::ExpiryTime { inner: unsafe { (if ret.is_none() { core::ptr::null() } else { ObjOps::nonnull_ptr_to_inner( { (ret.unwrap()) }) } as *const lightning_invoice::ExpiryTime<>) as *mut _ }, is_owned: false }; local_ret } @@ -1703,7 +1713,7 @@ pub extern "C" fn RawInvoice_expiry_time(this_arg: &RawInvoice) -> crate::lightn #[no_mangle] pub extern "C" fn RawInvoice_min_final_cltv_expiry(this_arg: &RawInvoice) -> crate::lightning_invoice::MinFinalCltvExpiry { let mut ret = unsafe { &*ObjOps::untweak_ptr(this_arg.inner) }.min_final_cltv_expiry(); - let mut local_ret = crate::lightning_invoice::MinFinalCltvExpiry { inner: unsafe { (if ret.is_none() { std::ptr::null() } else { ObjOps::nonnull_ptr_to_inner( { (ret.unwrap()) }) } as *const lightning_invoice::MinFinalCltvExpiry<>) as *mut _ }, is_owned: false }; + let mut local_ret = crate::lightning_invoice::MinFinalCltvExpiry { inner: unsafe { (if ret.is_none() { core::ptr::null() } else { ObjOps::nonnull_ptr_to_inner( { (ret.unwrap()) }) } as *const lightning_invoice::MinFinalCltvExpiry<>) as *mut _ }, is_owned: false }; local_ret } @@ -1723,7 +1733,7 @@ pub extern "C" fn RawInvoice_payment_secret(this_arg: &RawInvoice) -> crate::c_t #[no_mangle] pub extern "C" fn RawInvoice_features(this_arg: &RawInvoice) -> crate::lightning::ln::features::InvoiceFeatures { let mut ret = unsafe { &*ObjOps::untweak_ptr(this_arg.inner) }.features(); - let mut local_ret = crate::lightning::ln::features::InvoiceFeatures { inner: unsafe { (if ret.is_none() { std::ptr::null() } else { ObjOps::nonnull_ptr_to_inner( { (ret.unwrap()) }) } as *const lightning::ln::features::InvoiceFeatures<>) as *mut _ }, is_owned: false }; + let mut local_ret = crate::lightning::ln::features::InvoiceFeatures { inner: unsafe { (if ret.is_none() { core::ptr::null() } else { ObjOps::nonnull_ptr_to_inner( { (ret.unwrap()) }) } as *const lightning::ln::features::InvoiceFeatures<>) as *mut _ }, is_owned: false }; local_ret } @@ -1875,7 +1885,7 @@ pub extern "C" fn Invoice_payment_secret(this_arg: &Invoice) -> *const [u8; 32] #[no_mangle] pub extern "C" fn Invoice_features(this_arg: &Invoice) -> crate::lightning::ln::features::InvoiceFeatures { let mut ret = unsafe { &*ObjOps::untweak_ptr(this_arg.inner) }.features(); - let mut local_ret = crate::lightning::ln::features::InvoiceFeatures { inner: unsafe { (if ret.is_none() { std::ptr::null() } else { ObjOps::nonnull_ptr_to_inner( { (ret.unwrap()) }) } as *const lightning::ln::features::InvoiceFeatures<>) as *mut _ }, is_owned: false }; + let mut local_ret = crate::lightning::ln::features::InvoiceFeatures { inner: unsafe { (if ret.is_none() { core::ptr::null() } else { ObjOps::nonnull_ptr_to_inner( { (ret.unwrap()) }) } as *const lightning::ln::features::InvoiceFeatures<>) as *mut _ }, is_owned: false }; local_ret } @@ -1984,7 +1994,7 @@ pub extern "C" fn ExpiryTime_from_seconds(mut seconds: u64) -> crate::c_types::d #[must_use] #[no_mangle] pub extern "C" fn ExpiryTime_from_duration(mut duration: u64) -> crate::c_types::derived::CResult_ExpiryTimeCreationErrorZ { - let mut ret = lightning_invoice::ExpiryTime::from_duration(std::time::Duration::from_secs(duration)); + let mut ret = lightning_invoice::ExpiryTime::from_duration(core::time::Duration::from_secs(duration)); let mut local_ret = match ret { Ok(mut o) => crate::c_types::CResultTempl::ok( { crate::lightning_invoice::ExpiryTime { inner: ObjOps::heap_alloc(o), is_owned: true } }).into(), Err(mut e) => crate::c_types::CResultTempl::err( { crate::lightning_invoice::CreationError::native_into(e) }).into() }; local_ret } diff --git a/lightning-c-bindings/src/lightning_invoice/payment.rs b/lightning-c-bindings/src/lightning_invoice/payment.rs index f53e73e..973402b 100644 --- a/lightning-c-bindings/src/lightning_invoice/payment.rs +++ b/lightning-c-bindings/src/lightning_invoice/payment.rs @@ -124,11 +124,13 @@ //! as updates to the network graph or changes to channel scores should be applied prior to //! retries, typically by way of composing [`EventHandler`]s accordingly. -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}; use lightning_invoice::payment::InvoicePayer as nativeInvoicePayerImport; @@ -181,7 +183,7 @@ impl InvoicePayer { pub(crate) fn take_inner(mut self) -> *mut nativeInvoicePayer { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -264,7 +266,7 @@ impl rustPayer for Payer { // We're essentially a pointer already, or at least a set of pointers, so allow us to be used // directly as a Deref trait in higher-level structs: -impl std::ops::Deref for Payer { +impl core::ops::Deref for Payer { type Target = Self; fn deref(&self) -> &Self { self @@ -318,7 +320,7 @@ impl rustRouter for Router { // We're essentially a pointer already, or at least a set of pointers, so allow us to be used // directly as a Deref trait in higher-level structs: -impl std::ops::Deref for Router { +impl core::ops::Deref for Router { type Target = Self; fn deref(&self) -> &Self { self @@ -385,7 +387,7 @@ impl RetryAttempts { pub(crate) fn take_inner(mut self) -> *mut nativeRetryAttempts { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -409,7 +411,7 @@ pub extern "C" fn RetryAttempts_new(mut a_arg: usize) -> RetryAttempts { impl Clone for RetryAttempts { fn clone(&self) -> Self { Self { - inner: if <*mut nativeRetryAttempts>::is_null(self.inner) { std::ptr::null_mut() } else { + inner: if <*mut nativeRetryAttempts>::is_null(self.inner) { core::ptr::null_mut() } else { ObjOps::heap_alloc(unsafe { &*ObjOps::untweak_ptr(self.inner) }.clone()) }, is_owned: true, } @@ -438,11 +440,11 @@ pub extern "C" fn RetryAttempts_eq(a: &RetryAttempts, b: &RetryAttempts) -> bool #[no_mangle] pub extern "C" fn RetryAttempts_hash(o: &RetryAttempts) -> u64 { if o.inner.is_null() { return 0; } - // Note that we'd love to use std::collections::hash_map::DefaultHasher but it's not in core + // Note that we'd love to use alloc::collections::hash_map::DefaultHasher but it's not in core #[allow(deprecated)] let mut hasher = core::hash::SipHasher::new(); - std::hash::Hash::hash(o.get_native_ref(), &mut hasher); - std::hash::Hasher::finish(&hasher) + core::hash::Hash::hash(o.get_native_ref(), &mut hasher); + core::hash::Hasher::finish(&hasher) } /// An error that may occur when making a payment. #[must_use] @@ -633,7 +635,7 @@ impl From for crate::lightning::util::events::EventHandler { 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 - rust_obj.inner = std::ptr::null_mut(); + rust_obj.inner = core::ptr::null_mut(); ret.free = Some(InvoicePayer_free_void); ret } diff --git a/lightning-c-bindings/src/lightning_invoice/utils.rs b/lightning-c-bindings/src/lightning_invoice/utils.rs index ef8b51f..79281aa 100644 --- a/lightning-c-bindings/src/lightning_invoice/utils.rs +++ b/lightning-c-bindings/src/lightning_invoice/utils.rs @@ -8,11 +8,13 @@ //! Convenient utilities to create an invoice. -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}; /// Utility to construct an invoice. Generally, unless you want to do something like a custom /// cltv_expiry, this is what you should be using to create an invoice. The reason being, this @@ -74,7 +76,7 @@ impl DefaultRouter { pub(crate) fn take_inner(mut self) -> *mut nativeDefaultRouter { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -91,7 +93,7 @@ impl From for crate::lightning_invoice::payment::Router { let mut rust_obj = DefaultRouter { inner: ObjOps::heap_alloc(obj), is_owned: true }; let mut ret = DefaultRouter_as_Router(&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(); + rust_obj.inner = core::ptr::null_mut(); ret.free = Some(DefaultRouter_free_void); ret } @@ -109,7 +111,7 @@ pub extern "C" fn DefaultRouter_as_Router(this_arg: &DefaultRouter) -> crate::li #[must_use] extern "C" fn DefaultRouter_Router_find_route(this_arg: *const c_void, mut payer: crate::c_types::PublicKey, params: &crate::lightning::routing::router::RouteParameters, _payment_hash: *const [u8; 32], first_hops: *mut crate::c_types::derived::CVec_ChannelDetailsZ, scorer: &crate::lightning::routing::scoring::Score) -> crate::c_types::derived::CResult_RouteLightningErrorZ { - let mut local_first_hops_base = if first_hops == std::ptr::null_mut() { None } else { Some( { let mut local_first_hops_0 = Vec::new(); for mut item in unsafe { &mut *first_hops }.as_slice().iter() { local_first_hops_0.push( { item.get_native_ref() }); }; local_first_hops_0 }) }; let mut local_first_hops = local_first_hops_base.as_ref().map(|a| &a[..]); + let mut local_first_hops_base = if first_hops == core::ptr::null_mut() { None } else { Some( { let mut local_first_hops_0 = Vec::new(); for mut item in unsafe { &mut *first_hops }.as_slice().iter() { local_first_hops_0.push( { item.get_native_ref() }); }; local_first_hops_0 }) }; let mut local_first_hops = local_first_hops_base.as_ref().map(|a| &a[..]); let mut ret = >::find_route(unsafe { &mut *(this_arg as *mut nativeDefaultRouter) }, &payer.into_rust(), params.get_native_ref(), &::lightning::ln::PaymentHash(unsafe { *_payment_hash }), local_first_hops, scorer); let mut local_ret = match ret { Ok(mut o) => crate::c_types::CResultTempl::ok( { crate::lightning::routing::router::Route { inner: ObjOps::heap_alloc(o), is_owned: true } }).into(), Err(mut e) => crate::c_types::CResultTempl::err( { crate::lightning::ln::msgs::LightningError { inner: ObjOps::heap_alloc(e), is_owned: true } }).into() }; local_ret @@ -123,7 +125,7 @@ impl From for crate::lightning_invoice::payment::Payer { let mut rust_obj = ChannelManager { inner: ObjOps::heap_alloc(obj), is_owned: true }; let mut ret = ChannelManager_as_Payer(&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(); + rust_obj.inner = core::ptr::null_mut(); ret.free = Some(ChannelManager_free_void); ret } diff --git a/lightning-c-bindings/src/lightning_persister.rs b/lightning-c-bindings/src/lightning_persister.rs index 303e735..0ab0582 100644 --- a/lightning-c-bindings/src/lightning_persister.rs +++ b/lightning-c-bindings/src/lightning_persister.rs @@ -8,19 +8,23 @@ //! Utilities that handle persisting Rust-Lightning data to disk via standard filesystem APIs. -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}; mod util { -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}; } @@ -81,7 +85,7 @@ impl FilesystemPersister { pub(crate) fn take_inner(mut self) -> *mut nativeFilesystemPersister { assert!(self.is_owned); let ret = ObjOps::untweak_ptr(self.inner); - self.inner = std::ptr::null_mut(); + self.inner = core::ptr::null_mut(); ret } } @@ -126,7 +130,7 @@ impl From for crate::lightning::chain::chainmonitor:: let mut rust_obj = FilesystemPersister { inner: ObjOps::heap_alloc(obj), is_owned: true }; let mut ret = FilesystemPersister_as_Persist(&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(); + rust_obj.inner = core::ptr::null_mut(); ret.free = Some(FilesystemPersister_free_void); ret } -- 2.39.5