wireguard_uapi/linux/err/
parse_device_error.rs1use 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}