scribe_selection/
selector.rs1use scribe_core::Result;
5use scribe_analysis::AnalysisResult;
6use scribe_graph::CodeGraph;
7use serde::{Deserialize, Serialize};
8
9#[derive(Debug, Clone, Serialize, Deserialize)]
10pub struct SelectionCriteria {
11 pub max_files: Option<usize>,
12 pub include_patterns: Vec<String>,
13 pub exclude_patterns: Vec<String>,
14}
15
16impl Default for SelectionCriteria {
17 fn default() -> Self {
18 Self {
19 max_files: None,
20 include_patterns: vec![],
21 exclude_patterns: vec![],
22 }
23 }
24}
25
26#[derive(Debug, Clone, Serialize, Deserialize)]
27pub struct SelectionResult {
28 pub selected_files: Vec<String>,
29 pub scores: Vec<f64>,
30 pub total_files_considered: usize,
31}
32
33pub struct CodeSelector;
34
35impl CodeSelector {
36 pub fn new() -> Self {
37 Self
38 }
39
40 pub async fn select(
41 &self,
42 _analysis: &AnalysisResult,
43 _graph: &CodeGraph,
44 _criteria: &SelectionCriteria
45 ) -> Result<SelectionResult> {
46 Ok(SelectionResult {
48 selected_files: vec![],
49 scores: vec![],
50 total_files_considered: 0,
51 })
52 }
53}
54
55impl Default for CodeSelector {
56 fn default() -> Self {
57 Self::new()
58 }
59}