aboutsummaryrefslogtreecommitdiff
path: root/src/error.rs
diff options
context:
space:
mode:
authorHimbeerserverDE <himbeerserverde@gmail.com>2023-11-14 17:35:54 +0100
committerHimbeerserverDE <himbeerserverde@gmail.com>2023-11-14 17:35:54 +0100
commit1c2a4a8ace82f3ed0696e112b0434301538b3500 (patch)
treecfa2eb80f7f1cbcbbc67ba6b2f7bfbb568b5cdba /src/error.rs
parente1d63ff533bd1b56ac5394635c96aa354308d859 (diff)
initial split
Diffstat (limited to 'src/error.rs')
-rw-r--r--src/error.rs27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/error.rs b/src/error.rs
new file mode 100644
index 0000000..26e2444
--- /dev/null
+++ b/src/error.rs
@@ -0,0 +1,27 @@
+use std::{ffi, io, net};
+
+use thiserror::Error;
+
+#[derive(Debug, Error)]
+pub enum Error {
+ #[error("link {0} not found")]
+ LinkNotFound(String),
+ #[error("not enough ipv6 subnets")]
+ NotEnoughIpv6Subnets,
+
+ #[error("ffi nul: {0}")]
+ Nul(#[from] ffi::NulError),
+ #[error("io: {0}")]
+ Io(#[from] io::Error),
+
+ #[error("ipnet prefix len: {0}")]
+ IpnetPrefixLen(#[from] ipnet::PrefixLenError),
+ #[error("net: parse ip address: {0}")]
+ NetAddrParseError(#[from] net::AddrParseError),
+ #[error("rtnetlink: {0}")]
+ RtNetlink(#[from] rtnetlink::Error),
+ #[error("serde_json: {0}")]
+ SerdeJson(#[from] serde_json::Error),
+}
+
+pub type Result<T> = std::result::Result<T, Error>;