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§
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>
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".