Skip to main content

hypercore_protocol/
error.rs

1/// Error type for this crate
2#[derive(Debug, thiserror::Error)]
3pub enum Error {
4    /// Error from the [`snow`] crate
5    #[error("Error from `snow`: {0}")]
6    Snow(#[from] snow::Error),
7    /// Error from [`crypto_secretstream`] crate
8    #[error("Error from `crypto_secretstream`: {0}")]
9    SecretStream(crypto_secretstream::aead::Error),
10    /// Error from [`std::io`]
11    #[error("{0}")]
12    FromStdIo(#[from] std::io::Error),
13}
14
15impl From<crypto_secretstream::aead::Error> for Error {
16    fn from(value: crypto_secretstream::aead::Error) -> Self {
17        Error::SecretStream(value)
18    }
19}
20
21impl From<Error> for std::io::Error {
22    fn from(value: Error) -> Self {
23        std::io::Error::other(value)
24    }
25}