#![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)]
#[cfg(feature = "native")]
pub(crate) mod adaptive;
pub(crate) mod address;
#[cfg(feature = "native")]
pub(crate) mod bgp_geo_provider;
#[cfg(feature = "native")]
pub(crate) mod bootstrap;
#[cfg(feature = "native")]
pub(crate) mod dht;
#[cfg(feature = "native")]
pub(crate) mod dht_network_manager;
pub(crate) mod error;
#[cfg(feature = "native")]
pub(crate) mod network;
mod peer_record;
pub(crate) mod quantum_crypto;
#[cfg(feature = "native")]
pub(crate) mod rate_limit;
#[cfg(feature = "native")]
pub(crate) mod reachability;
#[cfg(feature = "native")]
pub(crate) mod security;
#[cfg(feature = "native")]
pub(crate) mod self_address;
#[cfg(feature = "native")]
pub(crate) mod transport;
pub(crate) mod transport_address;
#[cfg(feature = "native")]
pub(crate) mod transport_handle;
#[cfg(feature = "native")]
pub(crate) mod validation;
pub mod dht_lookup;
pub mod client_routing;
pub mod signed_address;
pub mod identity;
pub use address::{MultiAddr, WebRtcCertificateHash, WebRtcDirectAddr};
#[cfg(feature = "native")]
pub use network::{NodeConfig, NodeMode, P2PEvent, P2PNode, PeerRouteKind};
pub type Key = [u8; 32];
pub use dht_lookup::{
CandidateInsertion, IterativeLookup, LookupConfig, LookupError, LookupKey, LookupNode,
LookupPeerState, LookupProgress, LookupQuery, LookupQueryOutcome, LookupRunError,
LookupTermination, collect_after_first_with_grace, run_iterative_lookup, xor_distance,
};
#[cfg(feature = "native")]
pub use dht_network_manager::{
DhtNetworkEvent, RejectedSupplementalAddress, SupplementalAddressRegistration,
SupplementalAddressRejection,
};
pub use peer_record::{AddressType, DHTNode, ResponderView, WitnessedCloseGroup};
pub use transport_address::{
KnownReachability, KnownTransport, MAX_TRANSPORT_ADDRESS_PAYLOAD,
MAX_TRANSPORT_ADDRESS_RECORDS, TransportAddressRecord,
};
#[cfg(feature = "native")]
pub use bootstrap::{CachedCloseGroupPeer, CloseGroupCache};
#[cfg(feature = "native")]
pub use adaptive::dht::{AdaptiveDhtConfig, TrustEvent};
#[cfg(feature = "native")]
pub use adaptive::trust::{TrustEngine, TrustRecord};
#[cfg(feature = "native")]
pub use security::IPDiversityConfig;
pub use quantum_crypto::MlDsa65;
pub use identity::peer_id::PeerId;
pub(crate) use error::{P2PError, P2pResult as Result};
#[cfg(feature = "native")]
pub(crate) const DEFAULT_EVENT_CHANNEL_CAPACITY: usize = 1000;