use thiserror::Error;
#[derive(Error, Debug)]
pub enum DvpnError {
#[error("transport error: {0}")]
Transport(String),
#[error("stack error: {0}")]
Stack(#[from] nym_smol_core::SmolCoreError),
#[error("IO error: {0}")]
Io(#[from] std::io::Error),
#[error("cancelled")]
Cancelled,
#[error("invalid configuration: {0}")]
Config(String),
#[error("QUIC bridge is only valid on the two-hop entry leg")]
QuicRequiresTwoHop,
#[error("QUIC bridge error: {0}")]
Bridge(String),
}
pub type Result<T> = std::result::Result<T, DvpnError>;