diff options
Diffstat (limited to 'src/error.rs')
-rw-r--r-- | src/error.rs | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/error.rs b/src/error.rs new file mode 100644 index 0000000..c35ff38 --- /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("incomplete transmission")] + PartialSend, + + #[error("parse address: {0}")] + AddrParse(#[from] net::AddrParseError), + #[error("io: {0}")] + Io(#[from] io::Error), + #[error("nul: {0}")] + Nul(#[from] ffi::NulError), + + #[error("dhcproto decode: {0}")] + DhcprotoDecode(#[from] dhcproto::error::DecodeError), + #[error("dhcproto encode: {0}")] + DhcprotoEncode(#[from] dhcproto::error::EncodeError), + #[error("rsdsl_netlinkd: {0}")] + RsdslNetlinkd(#[from] rsdsl_netlinkd::error::Error), + #[error("serde_json: {0}")] + SerdeJson(#[from] serde_json::Error), +} + +pub type Result<T> = std::result::Result<T, Error>; |