Skip to main content

Storage

Trait Storage 

Source
pub trait Storage: Sized {
    // Required methods
    fn from_config(config: &Value) -> Result<Self, PluginError>;
    fn list_items(&self) -> Result<Vec<ItemStat>, PluginError>;
    fn get_item(&self, name: &str) -> Result<String, PluginError>;
    fn put_item(&self, name: &str, content: &str) -> Result<(), PluginError>;
    fn delete_item(&self, name: &str) -> Result<(), PluginError>;
    fn get_resource(&self, resource_id: &str) -> Result<Vec<u8>, PluginError>;
    fn put_resource(
        &self,
        resource_id: &str,
        data: &[u8],
    ) -> Result<(), PluginError>;
    fn delete_resource(&self, resource_id: &str) -> Result<(), PluginError>;
    fn init_new(&self) -> Result<(), PluginError>;
}
Expand description

存储后端 trait,8 方法镜像宿主 StorageBackend(语义约定见 spec §6.5): delete_* 幂等(不存在视为成功);init_new 建根 + .resource/ + 默认 info.json。

Required Methods§

Source

fn from_config(config: &Value) -> Result<Self, PluginError>

从数据源配置(与 manifest config_schema 对齐的对象)构造。

Source

fn list_items(&self) -> Result<Vec<ItemStat>, PluginError>

Source

fn get_item(&self, name: &str) -> Result<String, PluginError>

Source

fn put_item(&self, name: &str, content: &str) -> Result<(), PluginError>

Source

fn delete_item(&self, name: &str) -> Result<(), PluginError>

Source

fn get_resource(&self, resource_id: &str) -> Result<Vec<u8>, PluginError>

Source

fn put_resource( &self, resource_id: &str, data: &[u8], ) -> Result<(), PluginError>

Source

fn delete_resource(&self, resource_id: &str) -> Result<(), PluginError>

Source

fn init_new(&self) -> Result<(), PluginError>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§