Add an fn to get a ChannelMonitor reference from a ManyChannelMonitor
[rust-lightning] / lightning / src / lib.rs
index 68924b57a36af64b7fc01b43efcb4733ca8f3dc7..7161d888151b997f6fcfcf5a40e7141e4711aa0f 100644 (file)
@@ -10,7 +10,6 @@
 //! instead of having a rather-separate lightning appendage to a wallet.
 
 #![cfg_attr(not(feature = "fuzztarget"), deny(missing_docs))]
-#![forbid(unsafe_code)]
 
 // In general, rust is absolutely horrid at supporting users doing things like,
 // for example, compiling Rust code for real environments. Disable useless lints
 #![allow(ellipsis_inclusive_range_patterns)]
 
 extern crate bitcoin;
-extern crate bitcoin_hashes;
-extern crate secp256k1;
 #[cfg(test)] extern crate rand;
 #[cfg(test)] extern crate hex;
+#[cfg(all(test, feature = "mutation_testing"))] extern crate mutagen;
 
 #[macro_use]
 pub mod util;
 pub mod chain;
 pub mod ln;
+pub mod routing;
+
+#[cfg(all(
+               any(feature = "mutation_testing", feature = "fuzztarget"),
+               not(any(test, debug_assertions))
+               ))]
+const ERR: () = "You should never be building with feature = mutation_testing or feature = fuzztarget! They are used to compile with broken code for testing only!";