pub mod boxable;
mod generic;
mod memory;
#[cfg(not(target_arch = "wasm32"))]
mod standard;
#[cfg(target_arch = "wasm32")]
mod web;
use crate::AvailabilityError;
use std::error::Error;
pub use generic::{
Dir, File, OuterDirectoryError, ParentDir, Storage, WritableDir, WritableFile,
WritableParentDir,
};
pub use memory::MemoryStorage;
pub fn make_storage(
application: &str,
organization: Option<&str>,
qualifier: Option<&str>,
) -> Result<impl Storage, AvailabilityError> {
let qualifier = qualifier.unwrap_or("");
let organization = organization.unwrap_or("");
let _ = (qualifier, organization, application);
#[cfg(not(target_arch = "wasm32"))]
return standard::Storage::new(qualifier, organization, application)
.map_err(|e| AvailabilityError::NotAvailable(Some(Box::new(e) as Box<dyn Error>)));
#[cfg(target_arch = "wasm32")]
return web::Storage::new()
.map_err(|e| AvailabilityError::NotAvailable(Some(Box::new(e) as Box<dyn Error>)));
}