//! Binary blob storage
//!
//! This module contains binary storage provided by the [BlobStoreInterface] trait. The default implementation provided here is [BlobStoreFS],
//! but you may provide your own.
//!
//! A blob store database implementing [BlobStoreInterface] has different key-value tables which are static strings ([BlobTable]). For example, [TABLE_AVATAR] is a such table for storing avatars. Each table implements the [BlobTableInterface] for getting or setting values.
//!
//! ```no_run
//! use xmpp::store::{BlobStoreFS, TABLE_AVATAR, BlobStoreInterface};
//! #[tokio::main]
//! async fn main() {
//! let store = BlobStoreFS::new("data".into()).await.unwrap();
//! let avatars = store.table(&TABLE_AVATAR).await.unwrap();
//! let room_avatar = avatars.get("chat@xmpp.rs").await.unwrap();
//! }
//! ```
mod entry;
pub use entry::BlobEntry;
mod interface_store;
pub use interface_store::BlobStoreInterface;
mod interface_table;
pub use interface_table::BlobTableInterface;
mod table;
pub use table::{BlobTable, TABLE_AVATAR};
mod store_fs;
pub use store_fs::BlobStoreFS;