#[non_exhaustive]
pub enum Error {
Io(Error),
LockTaken,
}
Expand description
A wrapper around io::Error to distinguish between the lock already existing and other errors.
Without this, it would not be possible to tell if the io::ErrorKind::AlreadyExists
came from
the lockfile or from the parent directory (if it already exists and is a file).
The error is non-exhaustive, in case we want to give more granular errors in future.
Examples
use lockfile::Error;
// `err` is the value returned by Lockfile::open
match err {
Error::LockTaken => println!("lock exists, maybe we block in some way"),
// Use err.into_inner to handle non exhaustiveness
err => panic!("unrecoverable error: {}", err.into_inner()),
}
Variants (Non-exhaustive)
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
Io(Error)
LockTaken
Implementations
sourceimpl Error
impl Error
sourcepub fn into_inner(self) -> Error
pub fn into_inner(self) -> Error
Get at the underlying io::Error
.
Trait Implementations
sourceimpl Error for Error
impl Error for Error
1.30.0 · sourcefn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
The lower-level source of this error, if any. Read more
1.0.0 · sourcefn description(&self) -> &str
fn description(&self) -> &str
👎Deprecated since 1.42.0:
use the Display impl or to_string()
Auto Trait Implementations
impl !RefUnwindSafe for Error
impl Send for Error
impl Sync for Error
impl Unpin for Error
impl !UnwindSafe for Error
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more