Skip to main content

ito_core/
backend_spec_repository.rs

1//! Backend-backed promoted spec repository adapter.
2
3use ito_domain::backend::BackendSpecReader;
4use ito_domain::errors::DomainResult;
5use ito_domain::specs::{SpecDocument, SpecRepository, SpecSummary};
6
7/// Backend-backed promoted spec repository.
8pub struct BackendSpecRepository<R: BackendSpecReader> {
9    reader: R,
10}
11
12impl<R: BackendSpecReader> BackendSpecRepository<R> {
13    /// Create a backend-backed promoted spec repository.
14    pub fn new(reader: R) -> Self {
15        Self { reader }
16    }
17}
18
19impl<R: BackendSpecReader> SpecRepository for BackendSpecRepository<R> {
20    fn list(&self) -> DomainResult<Vec<SpecSummary>> {
21        self.reader.list_specs()
22    }
23
24    fn get(&self, id: &str) -> DomainResult<SpecDocument> {
25        self.reader.get_spec(id)
26    }
27}