sflow_parser/parsers/
error.rs

1//! Parser error types
2
3use std::fmt;
4use std::io;
5
6/// Parser error type
7#[derive(Debug)]
8pub enum ParseError {
9    /// I/O error
10    Io(io::Error),
11    /// Invalid data format
12    InvalidData(String),
13}
14
15impl fmt::Display for ParseError {
16    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
17        match self {
18            ParseError::Io(e) => write!(f, "I/O error: {}", e),
19            ParseError::InvalidData(msg) => write!(f, "Invalid data: {}", msg),
20        }
21    }
22}
23
24impl std::error::Error for ParseError {}
25
26impl From<io::Error> for ParseError {
27    fn from(err: io::Error) -> Self {
28        ParseError::Io(err)
29    }
30}
31
32impl From<std::string::FromUtf8Error> for ParseError {
33    fn from(err: std::string::FromUtf8Error) -> Self {
34        ParseError::InvalidData(format!("Invalid UTF-8 string: {}", err))
35    }
36}
37
38/// Result type for parser operations
39pub type Result<T> = std::result::Result<T, ParseError>;