mainline/
lib.rs

1#![doc = include_str!("../README.md")]
2//! ## Feature flags
3#![doc = document_features::document_features!()]
4//!
5
6#![deny(missing_docs)]
7#![deny(rustdoc::broken_intra_doc_links)]
8#![cfg_attr(not(test), deny(clippy::unwrap_used))]
9
10mod common;
11#[cfg(feature = "node")]
12mod dht;
13mod rpc;
14
15// Public modules
16#[cfg(feature = "async")]
17pub mod async_dht;
18
19pub use common::{Id, MutableItem, Node, RoutingTable};
20
21#[cfg(feature = "node")]
22pub use dht::{Dht, DhtBuilder, Testnet};
23#[cfg(feature = "node")]
24pub use rpc::{
25    messages::{MessageType, PutRequestSpecific, RequestSpecific},
26    server::{RequestFilter, ServerSettings, MAX_INFO_HASHES, MAX_PEERS, MAX_VALUES},
27    ClosestNodes, DEFAULT_REQUEST_TIMEOUT,
28};
29
30pub use ed25519_dalek::SigningKey;
31
32pub mod errors {
33    //! Exported errors
34    #[cfg(feature = "node")]
35    pub use super::common::ErrorSpecific;
36    #[cfg(feature = "node")]
37    pub use super::dht::PutMutableError;
38    #[cfg(feature = "node")]
39    pub use super::rpc::{ConcurrencyError, PutError, PutQueryError};
40
41    pub use super::common::DecodeIdError;
42    pub use super::common::MutableError;
43}