Ensure we read the full TLV stream length when maybe-reading `None`
[rust-lightning] / lightning / src / lib.rs
index 33f596fd8b94207e769e45c02c55721e3cb1905e..c9ae3f26eeb9ca460eb11b2f06da249dfeed4dec 100644 (file)
@@ -94,7 +94,9 @@ pub use std::io;
 pub use core2::io;
 
 #[cfg(not(feature = "std"))]
-mod io_extras {
+#[doc(hidden)]
+/// IO utilities public only for use by in-crate macros. These should not be used externally
+pub mod io_extras {
        use core2::io::{self, Read, Write};
 
        /// A writer which will move data into the void.
@@ -154,6 +156,8 @@ mod io_extras {
 }
 
 #[cfg(feature = "std")]
+#[doc(hidden)]
+/// IO utilities public only for use by in-crate macros. These should not be used externally
 mod io_extras {
        pub fn read_to_end<D: ::std::io::Read>(mut d: D) -> Result<Vec<u8>, ::std::io::Error> {
                let mut buf = Vec::new();
@@ -165,47 +169,12 @@ mod io_extras {
 }
 
 mod prelude {
-       #[cfg(feature = "hashbrown")]
-       extern crate hashbrown;
-
        pub use alloc::{vec, vec::Vec, string::String, collections::VecDeque, boxed::Box};
 
-       #[cfg(not(feature = "hashbrown"))]
-       mod std_hashtables {
-               pub(crate) use std::collections::{HashMap, HashSet, hash_map};
-
-               pub(crate) type OccupiedHashMapEntry<'a, K, V> =
-                       std::collections::hash_map::OccupiedEntry<'a, K, V>;
-               pub(crate) type VacantHashMapEntry<'a, K, V> =
-                       std::collections::hash_map::VacantEntry<'a, K, V>;
-       }
-       #[cfg(not(feature = "hashbrown"))]
-       pub(crate) use std_hashtables::*;
-
-       #[cfg(feature = "hashbrown")]
-       mod hashbrown_tables {
-               pub(crate) use hashbrown::{HashMap, HashSet, hash_map};
-
-               pub(crate) type OccupiedHashMapEntry<'a, K, V> =
-                       hashbrown::hash_map::OccupiedEntry<'a, K, V, hash_map::DefaultHashBuilder>;
-               pub(crate) type VacantHashMapEntry<'a, K, V> =
-                       hashbrown::hash_map::VacantEntry<'a, K, V, hash_map::DefaultHashBuilder>;
-       }
-       #[cfg(feature = "hashbrown")]
-       pub(crate) use hashbrown_tables::*;
-
-       pub(crate) fn new_hash_map<K: core::hash::Hash + Eq, V>() -> HashMap<K, V> { HashMap::new() }
-       pub(crate) fn hash_map_with_capacity<K: core::hash::Hash + Eq, V>(cap: usize) -> HashMap<K, V> {
-               HashMap::with_capacity(cap)
-       }
-
-       pub(crate) fn new_hash_set<K: core::hash::Hash + Eq>() -> HashSet<K> { HashSet::new() }
-       pub(crate) fn hash_set_with_capacity<K: core::hash::Hash + Eq>(cap: usize) -> HashSet<K> {
-               HashSet::with_capacity(cap)
-       }
-
        pub use alloc::borrow::ToOwned;
        pub use alloc::string::ToString;
+
+       pub(crate) use crate::util::hash_tables::*;
 }
 
 #[cfg(all(not(ldk_bench), feature = "backtrace", feature = "std", test))]