use omry_db::Database;
use std::fs::File;
use std::ops::Deref;
use tempfile::NamedTempFile;
pub struct TempDb {
db: Database,
#[allow(dead_code)]
temp_db_file: NamedTempFile<File>,
}
impl TempDb {
pub async fn new() -> anyhow::Result<Self> {
let temp_db_file = NamedTempFile::with_suffix(".db")?;
let db = Database::new_with_records_table(temp_db_file.path()).await?;
Ok(Self { db, temp_db_file })
}
}
impl Deref for TempDb {
type Target = Database;
fn deref(&self) -> &Self::Target {
&self.db
}
}