Coverage Report

Created: 2026-02-14 06:42

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/rust/registry/src/index.crates.io-1949cf8c6b5b557f/snmp-parser-0.10.0/src/error.rs
Line
Count
Source
1
use asn1_rs::Error;
2
use nom::error::{ErrorKind, ParseError};
3
use std::convert::From;
4
5
#[derive(Debug, PartialEq, thiserror::Error)]
6
pub enum SnmpError {
7
    #[error("Invalid message: not a DER sequence, or unexpected number of items, etc.")]
8
    InvalidMessage,
9
    #[error("Invalid version: not a number, or not in supported range (1, 2 or 3)")]
10
    InvalidVersion,
11
    #[error("Unknown or invalid PDU type")]
12
    InvalidPduType,
13
    #[error("Invalid PDU: content does not match type, or content cannot be decoded")]
14
    InvalidPdu,
15
    #[error("Invalid SNMPv3 header data")]
16
    InvalidHeaderData,
17
    #[error("Invalid SNMPv3 scoped PDU")]
18
    InvalidScopedPduData,
19
    #[error("Invalid SNMPv3 security model")]
20
    InvalidSecurityModel,
21
    #[error("Nom error")]
22
    NomError(ErrorKind),
23
    #[error("BER error")]
24
    BerError(Error),
25
}
26
27
impl<I> ParseError<I> for SnmpError {
28
0
    fn from_error_kind(_input: I, kind: ErrorKind) -> Self {
29
0
        SnmpError::NomError(kind)
30
0
    }
31
0
    fn append(_input: I, kind: ErrorKind, _other: Self) -> Self {
32
0
        SnmpError::NomError(kind)
33
0
    }
34
}
35
36
impl From<Error> for SnmpError {
37
40.8k
    fn from(e: Error) -> SnmpError {
38
40.8k
        SnmpError::BerError(e)
39
40.8k
    }
40
}
41
42
impl From<SnmpError> for nom::Err<SnmpError> {
43
0
    fn from(e: SnmpError) -> nom::Err<SnmpError> {
44
0
        nom::Err::Error(e)
45
0
    }
46
}