pub enum LockError {
Open(Error),
Readonly,
CreateDir(Error),
Nfs,
NotSupported,
Lock(Error),
TimedOut,
Contested,
}
Expand description
Errors that can occur when attempting to acquire a FileLock
Variants§
Open(Error)
An I/O error occurred attempting to open the lock file
Readonly
Exclusive locks cannot be take on read-only file systems
CreateDir(Error)
Failed to create parents directories to lock file
Nfs
Locking is not supported if the lock file is on an NFS, though note this
is a bit more nuanced as NFSv4
does support file locking, but is out
of scope, at least for now
NotSupported
This could happen on eg. extremely old and outdated OSes or some filesystems and is only present for completeness
Lock(Error)
An I/O error occurred attempting to un/lock the file
TimedOut
The lock could not be acquired within the caller provided timeout
Contested
The lock is currently held by another
Trait Implementations§
Source§impl Error for LockError
impl Error for LockError
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
👎Deprecated since 1.42.0: use the Display impl or to_string()
Auto Trait Implementations§
impl Freeze for LockError
impl !RefUnwindSafe for LockError
impl Send for LockError
impl Sync for LockError
impl Unpin for LockError
impl !UnwindSafe for LockError
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more