ndn_protocol/
error.rs

1use ndn_tlv::TlvError;
2use thiserror::Error;
3
4pub type Result<T> = std::result::Result<T, NdnError>;
5
6#[derive(Error, Debug)]
7pub enum NdnError {
8    #[error("Parse error")]
9    ParseError,
10    #[error("Failed to verify")]
11    VerifyError(VerifyError),
12    #[error("TLV Error: {0}")]
13    TlvError(TlvError),
14    #[error("{0}")]
15    GenericError(String),
16    #[error("IO Error: {0}")]
17    IOError(std::io::Error),
18}
19
20impl From<url::ParseError> for NdnError {
21    fn from(_value: url::ParseError) -> Self {
22        NdnError::ParseError
23    }
24}
25
26impl From<TlvError> for NdnError {
27    fn from(value: TlvError) -> Self {
28        NdnError::TlvError(value)
29    }
30}
31
32impl From<std::io::Error> for NdnError {
33    fn from(value: std::io::Error) -> Self {
34        NdnError::IOError(value)
35    }
36}
37
38#[derive(Error, Debug)]
39pub enum SignError {
40    #[error("No application parameters present")]
41    MissingApplicationParameters,
42}
43
44#[derive(Error, Debug)]
45pub enum VerifyError {
46    #[error("The parameter digest is invalid")]
47    InvalidParameterDigest,
48    #[error("The signature is invalid")]
49    InvalidSignature,
50    #[error("The interest has no signature info")]
51    MissingSignatureInfo,
52    #[error("The signed interest has no application parameters")]
53    MissingApplicationParameters,
54    #[error("Signed with an unknown sign method")]
55    UnknownSignMethod,
56}