pub trait StorageBackend:
Clone
+ Send
+ Sync {
// Required methods
fn extension(&self) -> &str;
fn serialize<T: Serialize>(&self, data: &T) -> Result<String>;
fn deserialize<T: DeserializeOwned>(&self, content: &str) -> Result<T>;
// Provided methods
fn read<T: DeserializeOwned>(&self, path: &Path) -> Result<T> { ... }
fn write<T: Serialize>(&self, path: &Path, data: &T) -> Result<()> { ... }
}Expand description
JSON storage backend (default). Trait for storage backend implementations
This allows swapping JSON for TOML, YAML, or other formats in the future.
Required Methods§
Sourcefn extension(&self) -> &str
fn extension(&self) -> &str
File extension for this storage format (e.g., “json”, “toml”)
§Returns
&str- File extension for this storage format
Sourcefn deserialize<T: DeserializeOwned>(&self, content: &str) -> Result<T>
fn deserialize<T: DeserializeOwned>(&self, content: &str) -> Result<T>
Provided Methods§
Sourcefn read<T: DeserializeOwned>(&self, path: &Path) -> Result<T>
fn read<T: DeserializeOwned>(&self, path: &Path) -> Result<T>
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.
Implementors§
impl StorageBackend for JsonStorage
impl StorageBackend for TomlStorage
Available on crate feature
toml only.