From: Matt Corallo Date: Tue, 13 Feb 2024 18:15:20 +0000 (+0000) Subject: Drop `lightning-invoice` dependency on hashbrown` X-Git-Tag: v0.0.123-beta~62^2 X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=commitdiff_plain;h=eecd2cdf4fadc92fa635aa72d32bce1299c470c6;p=rust-lightning Drop `lightning-invoice` dependency on hashbrown` --- diff --git a/lightning-invoice/Cargo.toml b/lightning-invoice/Cargo.toml index 4376ac0d..1d2a4cdb 100644 --- a/lightning-invoice/Cargo.toml +++ b/lightning-invoice/Cargo.toml @@ -16,7 +16,7 @@ rustdoc-args = ["--cfg", "docsrs"] [features] default = ["std"] -no-std = ["hashbrown", "lightning/no-std"] +no-std = ["lightning/no-std"] std = ["bitcoin/std", "num-traits/std", "lightning/std", "bech32/std"] [dependencies] @@ -24,7 +24,6 @@ bech32 = { version = "0.9.0", default-features = false } lightning = { version = "0.0.121", path = "../lightning", default-features = false } secp256k1 = { version = "0.27.0", default-features = false, features = ["recovery", "alloc"] } num-traits = { version = "0.2.8", default-features = false } -hashbrown = { version = "0.13", optional = true } serde = { version = "1.0.118", optional = true } bitcoin = { version = "0.30.2", default-features = false } @@ -32,3 +31,4 @@ bitcoin = { version = "0.30.2", default-features = false } lightning = { version = "0.0.121", path = "../lightning", default-features = false, features = ["_test_utils"] } hex = { package = "hex-conservative", version = "0.1.1", default-features = false } serde_json = { version = "1"} +hashbrown = { version = "0.13", default-features = false } diff --git a/lightning-invoice/src/lib.rs b/lightning-invoice/src/lib.rs index 610f739e..9c6badad 100644 --- a/lightning-invoice/src/lib.rs +++ b/lightning-invoice/src/lib.rs @@ -79,14 +79,7 @@ mod tb; #[allow(unused_imports)] mod prelude { - #[cfg(feature = "hashbrown")] - extern crate hashbrown; - pub use alloc::{vec, vec::Vec, string::String}; - #[cfg(not(feature = "hashbrown"))] - pub use std::collections::{HashMap, hash_map}; - #[cfg(feature = "hashbrown")] - pub use self::hashbrown::{HashMap, HashSet, hash_map}; pub use alloc::string::ToString; } diff --git a/lightning-invoice/src/utils.rs b/lightning-invoice/src/utils.rs index 5e8b7246..d45a4e8e 100644 --- a/lightning-invoice/src/utils.rs +++ b/lightning-invoice/src/utils.rs @@ -16,6 +16,7 @@ use lightning::routing::gossip::RoutingFees; use lightning::routing::router::{RouteHint, RouteHintHop, Router}; use lightning::util::logger::{Logger, Record}; use secp256k1::PublicKey; +use alloc::collections::{btree_map, BTreeMap}; use core::ops::Deref; use core::time::Duration; use core::iter::Iterator; @@ -603,7 +604,7 @@ fn sort_and_filter_channels( where L::Target: Logger, { - let mut filtered_channels: HashMap = HashMap::new(); + let mut filtered_channels: BTreeMap = BTreeMap::new(); let min_inbound_capacity = min_inbound_capacity_msat.unwrap_or(0); let mut min_capacity_channel_exists = false; let mut online_channel_exists = false; @@ -664,7 +665,7 @@ where } match filtered_channels.entry(channel.counterparty.node_id) { - hash_map::Entry::Occupied(mut entry) => { + btree_map::Entry::Occupied(mut entry) => { let current_max_capacity = entry.get().inbound_capacity_msat; // If this channel is public and the previous channel is not, ensure we replace the // previous channel to avoid announcing non-public channels. @@ -697,7 +698,7 @@ where channel.inbound_capacity_msat); } } - hash_map::Entry::Vacant(entry) => { + btree_map::Entry::Vacant(entry) => { entry.insert(channel); } }