dope_core/io/socket/
error.rs1use dope_sys::io::socket::addr;
2
3#[derive(Clone, Copy, Debug, PartialEq, Eq)]
5pub enum Error {
6 Storage {
7 actual: usize,
8 capacity: usize,
9 },
10 Header {
11 actual: usize,
12 required: usize,
13 },
14 Address {
15 family: i32,
16 actual: usize,
17 required: usize,
18 },
19 Unsupported {
20 family: i32,
21 actual: usize,
22 },
23 PathUnsupported,
24 PathEmpty,
25 PathLength {
26 actual: usize,
27 maximum: usize,
28 },
29 PathNul {
30 offset: usize,
31 },
32}
33
34impl Error {
35 pub(crate) fn from_path(error: addr::PathError) -> Self {
36 match error {
37 addr::PathError::Unsupported => Self::PathUnsupported,
38 addr::PathError::Empty => Self::PathEmpty,
39 addr::PathError::Length { actual, maximum } => Self::PathLength { actual, maximum },
40 addr::PathError::Nul { offset } => Self::PathNul { offset },
41 }
42 }
43}
44
45impl From<addr::Error> for Error {
46 fn from(error: addr::Error) -> Self {
47 match error {
48 addr::Error::Storage { actual, capacity } => Self::Storage { actual, capacity },
49 addr::Error::Header { actual, required } => Self::Header { actual, required },
50 addr::Error::Address {
51 family,
52 actual,
53 required,
54 } => Self::Address {
55 family,
56 actual,
57 required,
58 },
59 addr::Error::Unsupported { family, actual } => Self::Unsupported { family, actual },
60 }
61 }
62}