relay_knowledge/storage/contracts/code/
query.rs1use crate::domain::{
2 CodeFeatureFlagGraph, CodeFeatureFlagRequest, CodeImpactRequest, CodeRepositoryReport,
3 CodeRepositoryTotals, CodeRetrievalHit, CodeRetrievalRequest, CodeSymbolGenerationCounts,
4 CodebaseViewRequest, CodebaseViewSnapshot,
5};
6
7use super::super::{StorageError, StorageFuture};
8use super::CodeImpactChanges;
9
10pub trait CodeQueryReadStore: Send + Sync {
12 fn search_code(
13 &self,
14 request: CodeRetrievalRequest,
15 ) -> StorageFuture<'_, Vec<CodeRetrievalHit>>;
16
17 fn search_code_feature_flags(
18 &self,
19 request: CodeFeatureFlagRequest,
20 ) -> StorageFuture<'_, Vec<CodeFeatureFlagGraph>> {
21 Box::pin(async move {
22 Err(StorageError::InvalidInput(format!(
23 "code feature flag search for repository '{}' is unavailable",
24 request.repository.repository
25 )))
26 })
27 }
28
29 fn search_code_feature_flags_scope(
30 &self,
31 source_scope: String,
32 _request: CodeFeatureFlagRequest,
33 ) -> StorageFuture<'_, Vec<CodeFeatureFlagGraph>> {
34 Box::pin(async move {
35 Err(StorageError::InvalidInput(format!(
36 "code feature flag search for source scope '{source_scope}' is unavailable"
37 )))
38 })
39 }
40
41 fn search_code_scope(
42 &self,
43 source_scope: String,
44 _request: CodeRetrievalRequest,
45 ) -> StorageFuture<'_, Vec<CodeRetrievalHit>> {
46 Box::pin(async move {
47 Err(StorageError::InvalidInput(format!(
48 "code search for source scope '{source_scope}' is unavailable"
49 )))
50 })
51 }
52
53 fn analyze_code_impact(
54 &self,
55 request: CodeImpactRequest,
56 changes: CodeImpactChanges,
57 ) -> StorageFuture<'_, Vec<CodeRetrievalHit>>;
58
59 fn analyze_code_impact_scope(
60 &self,
61 source_scope: String,
62 _request: CodeImpactRequest,
63 _changes: CodeImpactChanges,
64 ) -> StorageFuture<'_, Vec<CodeRetrievalHit>> {
65 Box::pin(async move {
66 Err(StorageError::InvalidInput(format!(
67 "code impact analysis for source scope '{source_scope}' is unavailable"
68 )))
69 })
70 }
71
72 fn codebase_view_snapshot(
73 &self,
74 source_scope: String,
75 _request: CodebaseViewRequest,
76 _row_limit: usize,
77 ) -> StorageFuture<'_, CodebaseViewSnapshot> {
78 Box::pin(async move {
79 Err(StorageError::InvalidInput(format!(
80 "codebase view snapshot for source scope '{source_scope}' is unavailable"
81 )))
82 })
83 }
84
85 fn code_repository_totals(&self) -> StorageFuture<'_, CodeRepositoryTotals> {
86 Box::pin(async {
87 Err(StorageError::InvalidInput(
88 "code repository totals are unavailable".to_owned(),
89 ))
90 })
91 }
92
93 fn code_repository_report(
94 &self,
95 repository: String,
96 ) -> StorageFuture<'_, CodeRepositoryReport> {
97 Box::pin(async move {
98 Err(StorageError::InvalidInput(format!(
99 "code repository report for '{repository}' is unavailable"
100 )))
101 })
102 }
103
104 fn code_repository_scope_symbol_generation_counts(
105 &self,
106 source_scope: String,
107 ) -> StorageFuture<'_, CodeSymbolGenerationCounts> {
108 Box::pin(async move {
109 Err(StorageError::InvalidInput(format!(
110 "code symbol generation counts for source scope '{source_scope}' are unavailable"
111 )))
112 })
113 }
114}