wireguard_uapi/linux/err/
parse_device_error.rs

1use crate::linux::err::ParseAttributeError;
2use neli::err::{DeError, NlError};
3use thiserror::Error;
4
5use crate::get::{AllowedIpBuilderError, DeviceBuilderError, PeerBuilderError};
6
7#[derive(Error, Debug)]
8pub enum ParseDeviceError {
9    #[error(transparent)]
10    NlError(NlError),
11
12    #[error(transparent)]
13    NlDeError(DeError),
14
15    #[error("{0}")]
16    String(String),
17
18    #[error(transparent)]
19    ParseAttributeError(ParseAttributeError),
20
21    #[error("Encountered unknown device attribute id {}", id)]
22    UnknownDeviceAttributeError { id: u16 },
23
24    #[error("Encountered unknown peer attribute id {}", id)]
25    UnknownPeerAttributeError { id: u16 },
26
27    #[error("Encountered unknown allowed ip attribute id {}", id)]
28    UnknownAllowedIpAttributeError { id: u16 },
29
30    #[error(transparent)]
31    AllowedIpBuilderError(#[from] AllowedIpBuilderError),
32
33    #[error(transparent)]
34    DeviceBuilderError(#[from] DeviceBuilderError),
35
36    #[error(transparent)]
37    PeerBuilderError(#[from] PeerBuilderError),
38}
39
40impl From<NlError> for ParseDeviceError {
41    fn from(error: NlError) -> Self {
42        ParseDeviceError::NlError(error)
43    }
44}
45
46impl From<DeError> for ParseDeviceError {
47    fn from(error: DeError) -> Self {
48        ParseDeviceError::NlDeError(error)
49    }
50}
51
52impl From<String> for ParseDeviceError {
53    fn from(string: String) -> Self {
54        ParseDeviceError::String(string)
55    }
56}
57
58impl From<ParseAttributeError> for ParseDeviceError {
59    fn from(error: ParseAttributeError) -> Self {
60        ParseDeviceError::ParseAttributeError(error)
61    }
62}