Skip to content

Commit 12461fc

Browse files
committed
Use alloc for no_std builds
Replace std structs with alloc equivalents to support no_std builds f use prelude::* credit @devrandom
1 parent f074343 commit 12461fc

35 files changed

+68
-12
lines changed

lightning/src/chain/chainmonitor.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ use util::logger::Logger;
3737
use util::events;
3838
use util::events::EventHandler;
3939

40+
use prelude::*;
4041
use std::collections::{HashMap, hash_map};
4142
use std::sync::RwLock;
4243
use core::ops::Deref;
@@ -143,7 +144,7 @@ where C::Target: chain::Filter,
143144
#[cfg(any(test, feature = "fuzztarget", feature = "_test_utils"))]
144145
pub fn get_and_clear_pending_events(&self) -> Vec<events::Event> {
145146
use util::events::EventsProvider;
146-
let events = std::cell::RefCell::new(Vec::new());
147+
let events = core::cell::RefCell::new(Vec::new());
147148
let event_handler = |event| events.borrow_mut().push(event);
148149
self.process_pending_events(&event_handler);
149150
events.into_inner()

lightning/src/chain/channelmonitor.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ use util::ser::{Readable, ReadableArgs, MaybeReadable, Writer, Writeable, U48};
5151
use util::byte_utils;
5252
use util::events::Event;
5353

54+
use prelude::*;
5455
use std::collections::{HashMap, HashSet};
5556
use core::{cmp, mem};
5657
use std::io::Error;
@@ -2911,6 +2912,7 @@ mod tests {
29112912
use bitcoin::secp256k1::Secp256k1;
29122913
use std::sync::{Arc, Mutex};
29132914
use chain::keysinterface::InMemorySigner;
2915+
use prelude::*;
29142916

29152917
#[test]
29162918
fn test_prune_preimages() {

lightning/src/chain/keysinterface.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ use ln::chan_utils;
3737
use ln::chan_utils::{HTLCOutputInCommitment, make_funding_redeemscript, ChannelPublicKeys, HolderCommitmentTransaction, ChannelTransactionParameters, CommitmentTransaction};
3838
use ln::msgs::UnsignedChannelAnnouncement;
3939

40+
use prelude::*;
4041
use std::collections::HashSet;
4142
use core::sync::atomic::{AtomicUsize, Ordering};
4243
use std::io::Error;

lightning/src/chain/mod.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ use chain::channelmonitor::{ChannelMonitor, ChannelMonitorUpdate, ChannelMonitor
1818
use chain::keysinterface::Sign;
1919
use chain::transaction::{OutPoint, TransactionData};
2020

21+
use prelude::*;
22+
2123
pub mod chaininterface;
2224
pub mod chainmonitor;
2325
pub mod channelmonitor;

lightning/src/chain/onchaintx.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ use util::logger::Logger;
3232
use util::ser::{Readable, ReadableArgs, Writer, Writeable, VecWriter};
3333
use util::byte_utils;
3434

35+
use prelude::*;
3536
use std::collections::HashMap;
3637
use core::cmp;
3738
use core::ops::Deref;

lightning/src/chain/package.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,9 @@ use util::byte_utils;
3131
use util::logger::Logger;
3232
use util::ser::{Readable, Writer, Writeable};
3333

34-
use std::cmp;
35-
use std::mem;
36-
use std::ops::Deref;
34+
use core::cmp;
35+
use core::mem;
36+
use core::ops::Deref;
3737

3838
const MAX_ALLOC_SIZE: usize = 64*1024;
3939

lightning/src/lib.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
#![cfg_attr(all(any(test, feature = "_test_utils"), feature = "unstable"), feature(test))]
3232
#[cfg(all(any(test, feature = "_test_utils"), feature = "unstable"))] extern crate test;
3333

34+
extern crate alloc;
3435
extern crate bitcoin;
3536
extern crate core;
3637
#[cfg(any(test, feature = "_test_utils"))] extern crate hex;
@@ -41,3 +42,7 @@ pub mod util;
4142
pub mod chain;
4243
pub mod ln;
4344
pub mod routing;
45+
46+
mod prelude {
47+
pub use alloc::{vec, vec::Vec, string::String};
48+
}

lightning/src/ln/chan_utils.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ use bitcoin::secp256k1::{Secp256k1, Signature, Message};
3131
use bitcoin::secp256k1::Error as SecpError;
3232
use bitcoin::secp256k1;
3333

34+
use prelude::*;
3435
use core::cmp;
3536
use ln::chan_utils;
3637
use util::transaction_utils::sort_outputs;
@@ -1235,6 +1236,7 @@ fn script_for_p2wpkh(key: &PublicKey) -> Script {
12351236
mod tests {
12361237
use super::CounterpartyCommitmentSecrets;
12371238
use hex;
1239+
use prelude::*;
12381240

12391241
#[test]
12401242
fn test_per_commitment_storage() {

lightning/src/ln/chanmon_update_fail_tests.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ use ln::functional_test_utils::*;
3838

3939
use util::test_utils;
4040

41+
use prelude::*;
4142
use std::collections::HashMap;
4243

4344
// If persister_fail is true, we have the persister return a PermanentFailure

lightning/src/ln/channel.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ use util::errors::APIError;
4040
use util::config::{UserConfig,ChannelConfig};
4141
use util::scid_utils::scid_from_parts;
4242

43+
use prelude::*;
4344
use core::{cmp,mem,fmt};
4445
use core::ops::Deref;
4546
#[cfg(any(test, feature = "fuzztarget"))]
@@ -4928,6 +4929,7 @@ mod tests {
49284929
use bitcoin::hashes::Hash;
49294930
use bitcoin::hash_types::{Txid, WPubkeyHash};
49304931
use std::sync::Arc;
4932+
use prelude::*;
49314933

49324934
struct TestFeeEstimator {
49334935
fee_est: u32

lightning/src/ln/channelmanager.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,9 @@ use util::chacha20::{ChaCha20, ChaChaReader};
6161
use util::logger::Logger;
6262
use util::errors::APIError;
6363

64+
use prelude::*;
6465
use core::{cmp, mem};
65-
use std::cell::RefCell;
66+
use core::cell::RefCell;
6667
use std::collections::{HashMap, hash_map, HashSet};
6768
use std::io::{Cursor, Read};
6869
use std::sync::{Arc, Condvar, Mutex, MutexGuard, RwLock, RwLockReadGuard};
@@ -3685,7 +3686,7 @@ impl<Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> ChannelMana
36853686

36863687
#[cfg(any(test, feature = "fuzztarget", feature = "_test_utils"))]
36873688
pub fn get_and_clear_pending_events(&self) -> Vec<events::Event> {
3688-
let events = std::cell::RefCell::new(Vec::new());
3689+
let events = core::cell::RefCell::new(Vec::new());
36893690
let event_handler = |event| events.borrow_mut().push(event);
36903691
self.process_pending_events(&event_handler);
36913692
events.into_inner()

lightning/src/ln/features.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
//! [BOLT #9]: https://github.com/lightningnetwork/lightning-rfc/blob/master/09-features.md
2323
//! [messages]: crate::ln::msgs
2424
25+
use prelude::*;
2526
use core::{cmp, fmt};
2627
use core::marker::PhantomData;
2728

@@ -31,6 +32,7 @@ use ln::msgs::DecodeError;
3132
use util::ser::{Readable, Writeable, Writer};
3233

3334
mod sealed {
35+
use prelude::*;
3436
use ln::features::Features;
3537

3638
/// The context in which [`Features`] are applicable. Defines which features are required and

lightning/src/ln/functional_test_utils.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ use bitcoin::hash_types::BlockHash;
3939

4040
use bitcoin::secp256k1::key::PublicKey;
4141

42+
use prelude::*;
4243
use core::cell::RefCell;
4344
use std::rc::Rc;
4445
use std::sync::Mutex;

lightning/src/ln/functional_tests.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,9 @@ use bitcoin::secp256k1::key::{PublicKey,SecretKey};
5050

5151
use regex;
5252

53-
use std::collections::{BTreeSet, HashMap, HashSet};
53+
use prelude::*;
54+
use alloc::collections::BTreeSet;
55+
use std::collections::{HashMap, HashSet};
5456
use core::default::Default;
5557
use std::sync::Mutex;
5658

lightning/src/ln/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ pub struct PaymentPreimage(pub [u8;32]);
6868
#[derive(Hash, Copy, Clone, PartialEq, Eq, Debug)]
6969
pub struct PaymentSecret(pub [u8;32]);
7070

71+
use prelude::*;
7172
use bitcoin::bech32;
7273
use bitcoin::bech32::{Base32Len, FromBase32, ToBase32, WriteBase32, u5};
7374

lightning/src/ln/msgs.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ use bitcoin::hash_types::{Txid, BlockHash};
3232

3333
use ln::features::{ChannelFeatures, InitFeatures, NodeFeatures};
3434

35+
use prelude::*;
3536
use core::{cmp, fmt};
3637
use core::fmt::Debug;
3738
use std::io::Read;
@@ -867,6 +868,7 @@ pub trait RoutingMessageHandler : MessageSendEventsProvider {
867868
}
868869

869870
mod fuzzy_internal_msgs {
871+
use prelude::*;
870872
use ln::PaymentSecret;
871873

872874
// These types aren't intended to be pub, but are exposed for direct fuzzing (as we deserialize
@@ -1841,6 +1843,7 @@ mod tests {
18411843
use bitcoin::secp256k1::key::{PublicKey,SecretKey};
18421844
use bitcoin::secp256k1::{Secp256k1, Message};
18431845

1846+
use prelude::*;
18441847
use std::io::Cursor;
18451848

18461849
#[test]

lightning/src/ln/onion_route_tests.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ use bitcoin::hashes::Hash;
3232
use bitcoin::secp256k1::Secp256k1;
3333
use bitcoin::secp256k1::key::SecretKey;
3434

35+
use prelude::*;
3536
use core::default::Default;
3637
use std::io;
3738

lightning/src/ln/onion_utils.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ use bitcoin::secp256k1::Secp256k1;
2727
use bitcoin::secp256k1::ecdh::SharedSecret;
2828
use bitcoin::secp256k1;
2929

30+
use prelude::*;
3031
use std::io::Cursor;
3132
use core::ops::Deref;
3233

@@ -478,6 +479,7 @@ pub(super) fn process_onion_failure<T: secp256k1::Signing, L: Deref>(secp_ctx: &
478479

479480
#[cfg(test)]
480481
mod tests {
482+
use prelude::*;
481483
use ln::PaymentHash;
482484
use ln::features::{ChannelFeatures, NodeFeatures};
483485
use routing::router::{Route, RouteHop};

lightning/src/ln/peer_channel_encryptor.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
// You may not use this file except in accordance with one or both of these
88
// licenses.
99

10+
use prelude::*;
11+
1012
use ln::msgs::LightningError;
1113
use ln::msgs;
1214

lightning/src/ln/peer_handler.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,9 @@ use util::events::{MessageSendEvent, MessageSendEventsProvider};
3030
use util::logger::Logger;
3131
use routing::network_graph::NetGraphMsgHandler;
3232

33-
use std::collections::{HashMap,hash_map,HashSet,LinkedList};
33+
use prelude::*;
34+
use alloc::collections::LinkedList;
35+
use std::collections::{HashMap,hash_map,HashSet};
3436
use std::sync::{Arc, Mutex};
3537
use core::sync::atomic::{AtomicUsize, Ordering};
3638
use core::{cmp, hash, fmt, mem};
@@ -1421,6 +1423,7 @@ mod tests {
14211423
use bitcoin::secp256k1::Secp256k1;
14221424
use bitcoin::secp256k1::key::{SecretKey, PublicKey};
14231425

1426+
use prelude::*;
14241427
use std::sync::{Arc, Mutex};
14251428
use core::sync::atomic::Ordering;
14261429

lightning/src/ln/reorg_tests.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ use util::ser::{ReadableArgs, Writeable};
2222
use bitcoin::blockdata::block::{Block, BlockHeader};
2323
use bitcoin::hash_types::BlockHash;
2424

25+
use prelude::*;
2526
use std::collections::HashMap;
2627
use core::mem;
2728

lightning/src/ln/wire.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -351,6 +351,7 @@ impl Encode for msgs::GossipTimestampFilter {
351351
mod tests {
352352
use super::*;
353353
use util::byte_utils;
354+
use prelude::*;
354355

355356
// Big-endian wire encoding of Pong message (type = 19, byteslen = 2).
356357
const ENCODED_PONG: [u8; 6] = [0u8, 19u8, 0u8, 2u8, 0u8, 0u8];

lightning/src/routing/network_graph.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,12 @@ use util::logger::Logger;
3232
use util::events::{MessageSendEvent, MessageSendEventsProvider};
3333
use util::scid_utils::{block_from_scid, scid_from_parts, MAX_SCID_BLOCK};
3434

35+
use prelude::*;
36+
use alloc::collections::{BTreeMap, btree_map::Entry as BtreeEntry};
3537
use core::{cmp, fmt};
3638
use std::sync::{RwLock, RwLockReadGuard};
3739
use core::sync::atomic::{AtomicUsize, Ordering};
3840
use std::sync::Mutex;
39-
use std::collections::BTreeMap;
40-
use std::collections::btree_map::Entry as BtreeEntry;
4141
use core::ops::Deref;
4242
use bitcoin::hashes::hex::ToHex;
4343

@@ -1140,6 +1140,7 @@ mod tests {
11401140
use bitcoin::secp256k1::key::{PublicKey, SecretKey};
11411141
use bitcoin::secp256k1::{All, Secp256k1};
11421142

1143+
use prelude::*;
11431144
use std::sync::Arc;
11441145

11451146
fn create_net_graph_msg_handler() -> (Secp256k1<All>, NetGraphMsgHandler<Arc<test_utils::TestChainSource>, Arc<test_utils::TestLogger>>) {

lightning/src/routing/router.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,10 @@ use routing::network_graph::{NetworkGraph, RoutingFees};
2121
use util::ser::{Writeable, Readable};
2222
use util::logger::Logger;
2323

24+
use prelude::*;
25+
use alloc::collections::BinaryHeap;
2426
use core::cmp;
25-
use std::collections::{HashMap, BinaryHeap};
27+
use std::collections::HashMap;
2628
use core::ops::Deref;
2729

2830
/// A hop in a route
@@ -1193,6 +1195,7 @@ mod tests {
11931195
use bitcoin::secp256k1::key::{PublicKey,SecretKey};
11941196
use bitcoin::secp256k1::{Secp256k1, All};
11951197

1198+
use prelude::*;
11961199
use std::sync::Arc;
11971200

11981201
// Using the same keys for LN and BTC ids
@@ -3945,6 +3948,7 @@ mod benches {
39453948
use super::*;
39463949
use util::logger::{Logger, Record};
39473950

3951+
use prelude::*;
39483952
use test::Bencher;
39493953

39503954
struct DummyLogger {}

lightning/src/util/chacha20.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -318,6 +318,7 @@ impl<'a, R: io::Read> io::Read for ChaChaReader<'a, R> {
318318

319319
#[cfg(test)]
320320
mod test {
321+
use prelude::*;
321322
use core::iter::repeat;
322323

323324
use super::ChaCha20;

lightning/src/util/enforcing_trait_impls.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ use ln::chan_utils::{HTLCOutputInCommitment, ChannelPublicKeys, HolderCommitment
1111
use ln::{chan_utils, msgs};
1212
use chain::keysinterface::{Sign, InMemorySigner, BaseSign};
1313

14+
use prelude::*;
1415
use core::cmp;
1516
use std::sync::{Mutex, Arc};
1617

lightning/src/util/errors.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
//! Error types live here.
1111
12+
use alloc::string::String;
1213
use core::fmt;
1314

1415
/// Indicates an error on the client's part (usually some variant of attempting to use too-low or

lightning/src/util/events.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,9 @@ use bitcoin::blockdata::script::Script;
2323

2424
use bitcoin::secp256k1::key::PublicKey;
2525

26+
use prelude::*;
2627
use core::time::Duration;
27-
use std::ops::Deref;
28+
use core::ops::Deref;
2829

2930
/// An Event which you should probably take some action in response to.
3031
///

lightning/src/util/message_signing.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
//! https://lightning.readthedocs.io/lightning-signmessage.7.html
2121
//! https://api.lightning.community/#signmessage
2222
23+
use prelude::*;
2324
use crate::util::zbase32;
2425
use bitcoin::hashes::{sha256d, Hash};
2526
use bitcoin::secp256k1::recovery::{RecoverableSignature, RecoveryId};

lightning/src/util/poly1305.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,7 @@ impl Poly1305 {
205205

206206
#[cfg(test)]
207207
mod test {
208+
use prelude::*;
208209
use core::iter::repeat;
209210

210211
use util::poly1305::Poly1305;

lightning/src/util/ser.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
//! A very simple serialization framework which is used to serialize/deserialize messages as well
1111
//! as ChannelsManagers and ChannelMonitors.
1212
13+
use prelude::*;
1314
use std::io::{Read, Write};
1415
use std::collections::HashMap;
1516
use core::hash::Hash;

0 commit comments

Comments
 (0)