Skip to main content

EnvironmentStore

Trait EnvironmentStore 

Source
pub trait EnvironmentStore: Send + Sync {
    // Required methods
    fn list(&self) -> Result<Vec<EnvId>, StoreError>;
    fn exists(&self, env_id: &EnvId) -> Result<bool, StoreError>;
    fn load(&self, env_id: &EnvId) -> Result<Environment, StoreError>;
    fn save(&self, env: &Environment) -> Result<(), StoreError>;
    fn load_runtime(
        &self,
        env_id: &EnvId,
    ) -> Result<Option<EnvironmentRuntime>, StoreError>;
    fn save_runtime(
        &self,
        runtime: &EnvironmentRuntime,
    ) -> Result<(), StoreError>;
    fn load_pack_answers(
        &self,
        env_id: &EnvId,
        slot: CapabilitySlot,
    ) -> Result<Option<Value>, StoreError>;
    fn save_pack_answers(
        &self,
        env_id: &EnvId,
        slot: CapabilitySlot,
        answers: &Value,
    ) -> Result<(), StoreError>;
    fn delete_pack_answers(
        &self,
        env_id: &EnvId,
        slot: CapabilitySlot,
    ) -> Result<(), StoreError>;
}
Expand description

Local-FS persistence contract.

All methods are synchronous. Wrap in tokio::task::spawn_blocking at call sites that need async.

Required Methods§

Dyn Compatibility§

This trait is dyn compatible.

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

Implementors§