use crate::storage::{Storage, StorageError};
impl Storage {
pub fn create_database_dir(&self, db_name: &str) -> Result<(), StorageError> {
let db_path = self.database_path(db_name);
if db_path.exists() {
return Err(StorageError::DirectoryAlreadyExists(db_path));
}
std::fs::create_dir(&db_path).map_err(|e| StorageError::io(&db_path, e))?;
let public_path = db_path.join("public");
std::fs::create_dir(&public_path).map_err(|e| StorageError::io(&public_path, e))?;
Ok(())
}
pub fn drop_database_dir(&self, db_name: &str) -> Result<(), StorageError> {
let db_path = self.database_path(db_name);
if !db_path.exists() {
return Err(StorageError::DirectoryNotFound(db_path));
}
std::fs::remove_dir_all(&db_path).map_err(|e| StorageError::io(&db_path, e))?;
Ok(())
}
}