Skip to main content

bgpkit_parser/models/
err.rs

1use ipnet::AddrParseError;
2use std::error::Error;
3use std::fmt::{Display, Formatter};
4
5#[derive(Debug)]
6#[non_exhaustive]
7pub enum BgpModelsError {
8    PrefixParsingError(String),
9    NextHopParsingError(String),
10}
11
12impl Display for BgpModelsError {
13    fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
14        match self {
15            BgpModelsError::PrefixParsingError(msg) => {
16                write!(f, "cannot convert str to IP prefix: {msg}")
17            }
18            BgpModelsError::NextHopParsingError(msg) => {
19                write!(f, "cannot convert str to next hop: {msg}")
20            }
21        }
22    }
23}
24
25impl Error for BgpModelsError {}
26
27impl From<AddrParseError> for BgpModelsError {
28    fn from(err: AddrParseError) -> Self {
29        BgpModelsError::PrefixParsingError(err.to_string())
30    }
31}