btrfsutil/error/mod.rs
1//! Library errors
2
3#[cfg(feature = "enable-glue-errors")]
4use thiserror::Error;
5
6#[macro_use]
7pub(crate) mod glue;
8pub(crate) mod lib;
9
10pub use glue::GlueError;
11pub use lib::LibError;
12pub(crate) use lib::LibErrorCode;
13
14/// Generic library error type. May be either a [LibError] or a [GlueError].
15///
16/// [GlueError]: enum.LibError.html
17/// [GlueError]: enum.GlueError.html
18#[cfg(feature = "enable-glue-errors")]
19#[derive(Clone, Debug, Eq, Error, PartialEq)]
20pub enum BtrfsUtilError {
21 /// Glue error
22 #[error("{0}")]
23 Glue(GlueError),
24 /// Library error
25 #[error("{0}")]
26 Lib(LibError),
27}
28
29#[cfg(not(feature = "enable-glue-errors"))]
30/// Generic library error type. If [GlueError]s happen, they will panic.
31///
32/// [GlueError]: enum.GlueError.html
33pub type BtrfsUtilError = LibError;