use greentic_deploy_spec::{EnvId, Environment, EnvironmentRuntime};
use super::store::{EnvironmentStore, LocalFsStore, StoreError};
pub trait EnvironmentReads: Send + Sync {
fn list_env_ids(&self) -> Result<Vec<EnvId>, StoreError>;
fn env_exists(&self, env_id: &EnvId) -> Result<bool, StoreError>;
fn load_env(&self, env_id: &EnvId) -> Result<Environment, StoreError>;
fn read_runtime(&self, env_id: &EnvId) -> Result<Option<EnvironmentRuntime>, StoreError>;
}
impl EnvironmentReads for LocalFsStore {
fn list_env_ids(&self) -> Result<Vec<EnvId>, StoreError> {
EnvironmentStore::list(self)
}
fn env_exists(&self, env_id: &EnvId) -> Result<bool, StoreError> {
EnvironmentStore::exists(self, env_id)
}
fn load_env(&self, env_id: &EnvId) -> Result<Environment, StoreError> {
EnvironmentStore::load(self, env_id)
}
fn read_runtime(&self, env_id: &EnvId) -> Result<Option<EnvironmentRuntime>, StoreError> {
EnvironmentStore::load_runtime(self, env_id)
}
}