use std::sync::{MutexGuard, PoisonError};
use crate::ffi::Mdb;
#[derive(thiserror::Error, Debug)]
pub enum Error {
#[error("invalid path")]
InvalidPath,
#[error("invalid mdb file")]
InvalidMdbFile,
#[error("{0}")]
MdbSqlError(String),
#[error(transparent)]
NulError(#[from] std::ffi::NulError),
#[error(transparent)]
Utf8Error(#[from] std::str::Utf8Error),
#[error("{0}")]
MutexPoisonError(String),
#[error("invalid index to row results: {0}")]
InvalidRowIndex(usize),
#[error(transparent)]
FromSqlError(#[from] serde_plain::Error),
}
impl From<PoisonError<MutexGuard<'_, Mdb>>> for Error {
fn from(error: PoisonError<MutexGuard<Mdb>>) -> Self {
Self::MutexPoisonError(error.to_string())
}
}