async_fd_lock/
error.rs

1use std::io;
2
3use thiserror::Error;
4
5use crate::{RwLockReadGuard, RwLockWriteGuard};
6
7#[derive(Debug, Error)]
8pub struct LockError<T> {
9    pub file: T,
10    #[source]
11    pub error: io::Error,
12}
13
14impl<T> LockError<T> {
15    pub fn new(file: T, error: io::Error) -> Self {
16        Self { file, error }
17    }
18}
19
20impl<T> From<LockError<T>> for io::Error {
21    fn from(value: LockError<T>) -> Self {
22        value.error
23    }
24}
25
26impl<T> From<LockError<T>> for (T, io::Error) {
27    fn from(value: LockError<T>) -> Self {
28        (value.file, value.error)
29    }
30}
31
32pub type LockReadResult<T> = Result<RwLockReadGuard<T>, LockError<T>>;
33pub type LockWriteResult<T> = Result<RwLockWriteGuard<T>, LockError<T>>;