#![cfg_attr(not(test), warn(clippy::unwrap_used))]
#![cfg_attr(not(test), warn(clippy::expect_used))]
#![cfg_attr(not(test), warn(clippy::panic))]
#![allow(clippy::unused_async)]
#![allow(missing_docs)]
#![allow(missing_debug_implementations)]
#![warn(rust_2018_idioms)]
pub(crate) mod adaptive;
pub(crate) mod address;
pub(crate) mod bgp_geo_provider;
pub(crate) mod bootstrap;
pub(crate) mod dht;
pub(crate) mod dht_network_manager;
pub(crate) mod error;
pub(crate) mod network;
pub(crate) mod quantum_crypto;
pub(crate) mod rate_limit;
pub(crate) mod security;
pub(crate) mod transport;
pub(crate) mod transport_handle;
pub(crate) mod validation;
pub mod identity;
pub use address::MultiAddr;
pub use network::{NodeConfig, NodeMode, P2PEvent, P2PNode};
pub use dht::Key;
pub use dht_network_manager::{DHTNode, DhtNetworkEvent};
pub use bootstrap::{BootstrapConfig, BootstrapManager, BootstrapStats};
pub use bootstrap::{CachedCloseGroupPeer, CloseGroupCache};
pub use adaptive::dht::{AdaptiveDhtConfig, TrustEvent};
pub use adaptive::trust::{TrustEngine, TrustRecord};
pub use security::IPDiversityConfig;
pub use quantum_crypto::MlDsa65;
pub use identity::peer_id::PeerId;
pub(crate) use error::{P2PError, P2pResult as Result};
pub(crate) const DEFAULT_EVENT_CHANNEL_CAPACITY: usize = 1000;