Skip to main content

StorageBackend

Trait StorageBackend 

Source
pub trait StorageBackend: Send + Sync {
Show 16 methods // Required methods fn platform_id(&self) -> &str; fn get( &self, namespace: &StorageNamespace, key: &str, ) -> StorageResult<Option<StorageValue>>; fn set( &self, namespace: &StorageNamespace, key: &str, value: StorageValue, ) -> StorageResult<()>; fn delete( &self, namespace: &StorageNamespace, key: &str, ) -> StorageResult<()>; fn keys(&self, namespace: &StorageNamespace) -> StorageResult<Vec<String>>; fn clear(&self, namespace: &StorageNamespace) -> StorageResult<()>; fn write_file(&self, path: &str, data: &[u8]) -> StorageResult<()>; fn read_file(&self, path: &str) -> StorageResult<Vec<u8>>; fn delete_file(&self, path: &str) -> StorageResult<()>; fn file_exists(&self, path: &str) -> StorageResult<bool>; fn list_files(&self, dir: &str) -> StorageResult<Vec<String>>; // Provided methods fn contains( &self, namespace: &StorageNamespace, key: &str, ) -> StorageResult<bool> { ... } fn supports_secure(&self) -> bool { ... } fn secure_set(&self, _key: &str, _value: &[u8]) -> StorageResult<()> { ... } fn secure_get(&self, _key: &str) -> StorageResult<Option<Vec<u8>>> { ... } fn secure_delete(&self, _key: &str) -> StorageResult<()> { ... }
}
Expand description

Trait that platform-specific storage implementations must implement.

Covers three storage tiers:

  1. Key-value store (general app data)
  2. Secure storage (credentials, tokens)
  3. File storage (documents, media)

Required Methods§

Source

fn platform_id(&self) -> &str

Platform identifier for this backend.

Source

fn get( &self, namespace: &StorageNamespace, key: &str, ) -> StorageResult<Option<StorageValue>>

Get a value by key within a namespace.

Source

fn set( &self, namespace: &StorageNamespace, key: &str, value: StorageValue, ) -> StorageResult<()>

Set a value by key within a namespace.

Source

fn delete(&self, namespace: &StorageNamespace, key: &str) -> StorageResult<()>

Delete a key within a namespace.

Source

fn keys(&self, namespace: &StorageNamespace) -> StorageResult<Vec<String>>

List all keys in a namespace.

Source

fn clear(&self, namespace: &StorageNamespace) -> StorageResult<()>

Clear all keys in a namespace.

Source

fn write_file(&self, path: &str, data: &[u8]) -> StorageResult<()>

Write bytes to a file path (relative to app sandbox).

Source

fn read_file(&self, path: &str) -> StorageResult<Vec<u8>>

Read bytes from a file path (relative to app sandbox).

Source

fn delete_file(&self, path: &str) -> StorageResult<()>

Delete a file.

Source

fn file_exists(&self, path: &str) -> StorageResult<bool>

Check if a file exists.

Source

fn list_files(&self, dir: &str) -> StorageResult<Vec<String>>

List files in a directory (relative to app sandbox).

Provided Methods§

Source

fn contains( &self, namespace: &StorageNamespace, key: &str, ) -> StorageResult<bool>

Check if a key exists within a namespace.

Source

fn supports_secure(&self) -> bool

Whether this platform supports secure storage (Keychain, Keystore, etc.).

Source

fn secure_set(&self, _key: &str, _value: &[u8]) -> StorageResult<()>

Store a value securely (e.g., iOS Keychain, Android Keystore).

Source

fn secure_get(&self, _key: &str) -> StorageResult<Option<Vec<u8>>>

Retrieve a securely stored value.

Source

fn secure_delete(&self, _key: &str) -> StorageResult<()>

Delete a securely stored value.

Implementors§