#![allow(missing_docs)]
pub mod dht;
pub mod trust;
pub use dht::{AdaptiveDHT, AdaptiveDhtConfig, TrustEvent};
pub use trust::{NodeStatisticsUpdate, TrustEngine};
#[derive(Debug, thiserror::Error)]
pub enum AdaptiveNetworkError {
#[error("Routing error: {0}")]
Routing(String),
#[error("Trust calculation error: {0}")]
Trust(String),
#[error("Learning system error: {0}")]
Learning(String),
#[error("Gossip error: {0}")]
Gossip(String),
#[error("Network error: {0}")]
Network(#[from] std::io::Error),
#[error("Serialization error: {0}")]
Serialization(#[from] postcard::Error),
#[error("Other error: {0}")]
Other(String),
}
impl From<anyhow::Error> for AdaptiveNetworkError {
fn from(e: anyhow::Error) -> Self {
AdaptiveNetworkError::Network(std::io::Error::other(e.to_string()))
}
}
impl From<crate::error::P2PError> for AdaptiveNetworkError {
fn from(e: crate::error::P2PError) -> Self {
AdaptiveNetworkError::Network(std::io::Error::other(e.to_string()))
}
}