Skip to main content

relay_knowledge/storage/contracts/code/
repository_set.rs

1use crate::domain::{
2    CodeRepositoryCrossEdge, CodeRepositorySet, CodeRepositorySetMember,
3    CodeRepositorySetRefreshSummary, CodeRepositorySetRefreshTaskRecord, CodeRepositorySetStatus,
4};
5
6use super::super::{StorageError, StorageFuture};
7use super::{
8    CodeRepositorySetEdgeSelector, CodeRepositorySetMemberSeed,
9    CodeRepositorySetRefreshPublication, CodeRepositorySetRefreshTaskClaimRequest,
10    CodeRepositorySetRefreshTaskCompletion, CodeRepositorySetRefreshTaskFailure,
11    CodeRepositorySetRefreshTaskSeed, CodeRepositorySetSeed,
12};
13
14/// Repository-set membership, overlay, and refresh-task capability.
15pub trait CodeRepositorySetStore: Send + Sync {
16    fn create_code_repository_set(
17        &self,
18        _seed: CodeRepositorySetSeed,
19    ) -> StorageFuture<'_, CodeRepositorySet> {
20        Box::pin(async {
21            Err(StorageError::InvalidInput(
22                "repository set storage is unavailable".to_owned(),
23            ))
24        })
25    }
26
27    fn add_code_repository_set_member(
28        &self,
29        _seed: CodeRepositorySetMemberSeed,
30    ) -> StorageFuture<'_, CodeRepositorySetMember> {
31        Box::pin(async {
32            Err(StorageError::InvalidInput(
33                "repository set member storage is unavailable".to_owned(),
34            ))
35        })
36    }
37
38    fn remove_code_repository_set_member(
39        &self,
40        _set_alias: String,
41        _repository_alias: String,
42    ) -> StorageFuture<'_, CodeRepositorySetMember> {
43        Box::pin(async {
44            Err(StorageError::InvalidInput(
45                "repository set member storage is unavailable".to_owned(),
46            ))
47        })
48    }
49
50    fn code_repository_set(
51        &self,
52        set_alias: String,
53    ) -> StorageFuture<'_, Option<CodeRepositorySet>> {
54        Box::pin(async move {
55            Err(StorageError::InvalidInput(format!(
56                "repository set lookup for '{set_alias}' is unavailable"
57            )))
58        })
59    }
60
61    fn code_repository_set_status(
62        &self,
63        set_alias: String,
64    ) -> StorageFuture<'_, Option<CodeRepositorySetStatus>> {
65        Box::pin(async move {
66            Err(StorageError::InvalidInput(format!(
67                "repository set status for '{set_alias}' is unavailable"
68            )))
69        })
70    }
71
72    fn refresh_code_repository_set_overlay(
73        &self,
74        _set_alias: String,
75        _publication: CodeRepositorySetRefreshPublication,
76    ) -> StorageFuture<'_, CodeRepositorySetRefreshSummary> {
77        Box::pin(async {
78            Err(StorageError::InvalidInput(
79                "repository set overlay refresh is unavailable".to_owned(),
80            ))
81        })
82    }
83
84    fn code_repository_set_cross_edges(
85        &self,
86        set_id: String,
87    ) -> StorageFuture<'_, Vec<CodeRepositoryCrossEdge>> {
88        Box::pin(async move {
89            Err(StorageError::InvalidInput(format!(
90                "repository set cross edges for '{set_id}' are unavailable"
91            )))
92        })
93    }
94
95    fn code_repository_set_cross_edges_for_selector(
96        &self,
97        set_id: String,
98        _selector: CodeRepositorySetEdgeSelector,
99    ) -> StorageFuture<'_, Vec<CodeRepositoryCrossEdge>> {
100        self.code_repository_set_cross_edges(set_id)
101    }
102
103    fn queue_code_repository_set_refresh_task(
104        &self,
105        _task: CodeRepositorySetRefreshTaskSeed,
106    ) -> StorageFuture<'_, CodeRepositorySetRefreshTaskRecord> {
107        Box::pin(async {
108            Err(StorageError::InvalidInput(
109                "repository set refresh task storage is unavailable".to_owned(),
110            ))
111        })
112    }
113
114    fn claim_code_repository_set_refresh_task(
115        &self,
116        _request: CodeRepositorySetRefreshTaskClaimRequest,
117    ) -> StorageFuture<'_, Option<CodeRepositorySetRefreshTaskRecord>> {
118        Box::pin(async {
119            Err(StorageError::InvalidInput(
120                "repository set refresh task claim is unavailable".to_owned(),
121            ))
122        })
123    }
124
125    fn complete_code_repository_set_refresh_task(
126        &self,
127        _request: CodeRepositorySetRefreshTaskCompletion,
128    ) -> StorageFuture<'_, CodeRepositorySetRefreshTaskRecord> {
129        Box::pin(async {
130            Err(StorageError::InvalidInput(
131                "repository set refresh task storage is unavailable".to_owned(),
132            ))
133        })
134    }
135
136    fn fail_code_repository_set_refresh_task(
137        &self,
138        _request: CodeRepositorySetRefreshTaskFailure,
139    ) -> StorageFuture<'_, CodeRepositorySetRefreshTaskRecord> {
140        Box::pin(async {
141            Err(StorageError::InvalidInput(
142                "repository set refresh task storage is unavailable".to_owned(),
143            ))
144        })
145    }
146}