use std::path::Path;
use crate::error::{Error, Result};
#[derive(Debug)]
pub struct Iqdb {
_private: (),
}
impl Iqdb {
pub fn open<P: AsRef<Path>>(_path: P) -> Result<Self> {
Err(Error::NotImplemented)
}
pub fn open_in_memory() -> Self {
Self { _private: () }
}
pub fn flush(&self) -> Result<()> {
Err(Error::NotImplemented)
}
pub fn close(self) -> Result<()> {
Ok(())
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn open_in_memory_returns_handle() {
let _db = Iqdb::open_in_memory();
}
#[test]
fn open_returns_not_implemented() {
let result = Iqdb::open("/tmp/iqdb-test");
assert!(matches!(result, Err(Error::NotImplemented)));
}
#[test]
fn flush_returns_not_implemented() {
let db = Iqdb::open_in_memory();
let result = db.flush();
assert!(matches!(result, Err(Error::NotImplemented)));
}
#[test]
fn close_succeeds() {
let db = Iqdb::open_in_memory();
assert!(db.close().is_ok());
}
}