1#[derive(Debug)]
3pub struct LimitedSearchResults {
4 pub results: Vec<SearchResult>,
5 pub skipped_files: Vec<SearchResult>,
6 pub limits_applied: Option<SearchLimits>,
7 pub cached_blocks_skipped: Option<usize>,
8}
9
10#[derive(Debug)]
12pub struct SearchLimits {
13 pub max_results: Option<usize>,
14 pub max_bytes: Option<usize>,
15 pub max_tokens: Option<usize>,
16
17 #[allow(dead_code)]
18 pub total_bytes: usize,
19 #[allow(dead_code)]
20 pub total_tokens: usize,
21}
22
23#[derive(Debug, Clone)]
25pub struct SearchResult {
26 pub file: String,
27 pub lines: (usize, usize),
28 pub node_type: String,
29 pub code: String,
30 pub matched_by_filename: Option<bool>,
32 pub rank: Option<usize>,
34 pub score: Option<f64>,
36 pub tfidf_score: Option<f64>,
38 pub bm25_score: Option<f64>,
40 pub tfidf_rank: Option<usize>,
42 pub bm25_rank: Option<usize>,
44 pub new_score: Option<f64>,
46 pub hybrid2_rank: Option<usize>,
48 pub combined_score_rank: Option<usize>,
50 pub file_unique_terms: Option<usize>,
52 pub file_total_matches: Option<usize>,
54 pub file_match_rank: Option<usize>,
56 pub block_unique_terms: Option<usize>,
58 pub block_total_matches: Option<usize>,
60 pub parent_file_id: Option<String>,
62 #[allow(dead_code)]
64 pub block_id: Option<usize>,
65 pub matched_keywords: Option<Vec<String>>,
67 #[allow(dead_code)]
69 pub tokenized_content: Option<Vec<String>>,
70}
71
72#[derive(Debug, PartialEq, Eq, Clone)]
74pub struct CodeBlock {
75 pub start_row: usize,
76 pub end_row: usize,
77 #[allow(dead_code)]
78 pub start_byte: usize,
79 #[allow(dead_code)]
80 pub end_byte: usize,
81 pub node_type: String,
82 pub parent_node_type: Option<String>,
84 pub parent_start_row: Option<usize>,
85 pub parent_end_row: Option<usize>,
86}