#[derive(Debug, thiserror::Error)]
pub enum Error {
#[error("bencode: {0}")]
Bencode(#[from] irontide_bencode::Error),
#[error("core: {0}")]
Core(#[from] irontide_core::Error),
#[error("wire: {0}")]
Wire(#[from] irontide_wire::Error),
#[error("tracker: {0}")]
Tracker(#[from] irontide_tracker::Error),
#[error("dht: {0}")]
Dht(#[from] irontide_dht::Error),
#[error("storage: {0}")]
Storage(#[from] irontide_storage::Error),
#[error("session: {0}")]
Session(#[from] irontide_session::Error),
#[error("utp: {0}")]
Utp(#[from] irontide_utp::Error),
#[error("nat: {0}")]
Nat(#[from] irontide_nat::Error),
#[error("io: {0}")]
Io(#[from] std::io::Error),
}
pub type Result<T> = std::result::Result<T, Error>;