pub struct SymbolIndex { /* private fields */ }Expand description
SQLite-backed symbol index for a project.
Architecture: writer Mutex<IndexDb> for mutations + per-query read-only
connections for _cached methods. This makes SymbolIndex: Send + Sync,
enabling Arc<SymbolIndex> without an external Mutex.
Implementations§
Source§impl SymbolIndex
impl SymbolIndex
Sourcepub fn find_symbol_cached(
&self,
name: &str,
file_path: Option<&str>,
include_body: bool,
exact_match: bool,
max_matches: usize,
) -> Result<Vec<SymbolInfo>>
pub fn find_symbol_cached( &self, name: &str, file_path: Option<&str>, include_body: bool, exact_match: bool, max_matches: usize, ) -> Result<Vec<SymbolInfo>>
Query symbols from DB without lazy indexing. Returns empty if file not yet indexed.
Sourcepub fn get_symbols_overview_cached(
&self,
path: &str,
_depth: usize,
) -> Result<Vec<SymbolInfo>>
pub fn get_symbols_overview_cached( &self, path: &str, _depth: usize, ) -> Result<Vec<SymbolInfo>>
Get symbols overview from DB without lazy indexing.
Sourcepub fn get_ranked_context_cached(
&self,
query: &str,
path: Option<&str>,
max_tokens: usize,
include_body: bool,
depth: usize,
graph_cache: Option<&GraphCache>,
semantic_scores: HashMap<String, f64>,
) -> Result<RankedContextResult>
pub fn get_ranked_context_cached( &self, query: &str, path: Option<&str>, max_tokens: usize, include_body: bool, depth: usize, graph_cache: Option<&GraphCache>, semantic_scores: HashMap<String, f64>, ) -> Result<RankedContextResult>
Ranked context from DB without lazy indexing.
If graph_cache is provided, PageRank scores boost symbols in highly-imported files.
If semantic_scores is non-empty, vector similarity is blended into ranking.
Sourcepub fn get_ranked_context_cached_with_query_type(
&self,
query: &str,
path: Option<&str>,
max_tokens: usize,
include_body: bool,
depth: usize,
graph_cache: Option<&GraphCache>,
semantic_scores: HashMap<String, f64>,
query_type: Option<&str>,
) -> Result<RankedContextResult>
pub fn get_ranked_context_cached_with_query_type( &self, query: &str, path: Option<&str>, max_tokens: usize, include_body: bool, depth: usize, graph_cache: Option<&GraphCache>, semantic_scores: HashMap<String, f64>, query_type: Option<&str>, ) -> Result<RankedContextResult>
Like get_ranked_context_cached but accepts an optional query type
("identifier", "natural_language", "short_phrase") to tune
ranking weights per query category.
Source§impl SymbolIndex
impl SymbolIndex
pub fn refresh_all(&self) -> Result<IndexStats>
Sourcepub fn index_files(&self, paths: &[PathBuf]) -> Result<usize>
pub fn index_files(&self, paths: &[PathBuf]) -> Result<usize>
Incrementally re-index only the given files (changed/created).
Sourcepub fn refresh_file(&self, relative_path: &str) -> Result<usize>
pub fn refresh_file(&self, relative_path: &str) -> Result<usize>
Re-index a single file by relative path (convenience for post-mutation refresh).
Sourcepub fn remove_files(&self, paths: &[PathBuf]) -> Result<usize>
pub fn remove_files(&self, paths: &[PathBuf]) -> Result<usize>
Remove deleted files from the index.
Source§impl SymbolIndex
impl SymbolIndex
pub fn new(project: ProjectRoot) -> Self
Sourcepub fn new_memory(project: ProjectRoot) -> Self
pub fn new_memory(project: ProjectRoot) -> Self
Create an in-memory index (for tests and benchmarks — no disk persistence).
pub fn stats(&self) -> Result<IndexStats>
Sourcepub fn get_project_structure(&self) -> Result<Vec<DirStats>>
pub fn get_project_structure(&self) -> Result<Vec<DirStats>>
Hierarchical project structure: per-directory file count + symbol count. Used as Level 1 pruning — lets LLM decide which directories to drill into.
pub fn get_symbols_overview( &self, path: &str, depth: usize, ) -> Result<Vec<SymbolInfo>>
pub fn find_symbol( &self, name: &str, file_path: Option<&str>, include_body: bool, exact_match: bool, max_matches: usize, ) -> Result<Vec<SymbolInfo>>
pub fn get_ranked_context( &self, query: &str, path: Option<&str>, max_tokens: usize, include_body: bool, depth: usize, ) -> Result<RankedContextResult>
Sourcepub fn db(&self) -> MutexGuard<'_, IndexDb>
pub fn db(&self) -> MutexGuard<'_, IndexDb>
Access the underlying database (e.g. for import graph queries).
Auto Trait Implementations§
impl !Freeze for SymbolIndex
impl RefUnwindSafe for SymbolIndex
impl Send for SymbolIndex
impl Sync for SymbolIndex
impl Unpin for SymbolIndex
impl UnsafeUnpin for SymbolIndex
impl UnwindSafe for SymbolIndex
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more