pub struct IndexTool { /* private fields */ }Expand description
Main indexing tool implementation
Implementations§
Source§impl IndexTool
impl IndexTool
Sourcepub fn new(config: IndexConfig) -> IndexResult<Self>
pub fn new(config: IndexConfig) -> IndexResult<Self>
Create a new IndexTool with the given configuration
Sourcepub async fn initialize(&self) -> IndexResult<()>
pub async fn initialize(&self) -> IndexResult<()>
Initialize the index
Sourcepub async fn build(
&self,
input: BuildInput,
) -> IndexResult<ComprehensiveToolOutput<IndexStats>>
pub async fn build( &self, input: BuildInput, ) -> IndexResult<ComprehensiveToolOutput<IndexStats>>
Build index for a directory
Sourcepub async fn update(
&self,
input: UpdateInput,
) -> IndexResult<ComprehensiveToolOutput<IndexStats>>
pub async fn update( &self, input: UpdateInput, ) -> IndexResult<ComprehensiveToolOutput<IndexStats>>
Update index with changed files
Sourcepub async fn optimize(&self) -> IndexResult<()>
pub async fn optimize(&self) -> IndexResult<()>
Optimize the index for better performance
Sourcepub async fn stats(&self) -> IndexResult<ComprehensiveToolOutput<IndexStats>>
pub async fn stats(&self) -> IndexResult<ComprehensiveToolOutput<IndexStats>>
Get index statistics with output wrapper
Sourcepub async fn search(
&self,
input: SearchInput,
) -> IndexResult<ComprehensiveToolOutput<Vec<SearchResult>>>
pub async fn search( &self, input: SearchInput, ) -> IndexResult<ComprehensiveToolOutput<Vec<SearchResult>>>
Search the index with automatic fallback and error recovery
Sourcepub async fn simple_search(&self, query: &str) -> IndexResult<Vec<SearchResult>>
pub async fn simple_search(&self, query: &str) -> IndexResult<Vec<SearchResult>>
Simple search method that auto-selects strategy and always returns results
Sourcepub fn get_summary(&self, results: &[SearchResult]) -> String
pub fn get_summary(&self, results: &[SearchResult]) -> String
Get a one-line summary for LLM consumption
Sourcepub async fn search_smart(&self, query: &str) -> Vec<SearchResult>
pub async fn search_smart(&self, query: &str) -> Vec<SearchResult>
Main search API for LLMs - auto-selects strategy, never fails, always useful
Sourcepub fn enhance_results_for_llm(
&self,
results: Vec<SearchResult>,
) -> Vec<SearchResult>
pub fn enhance_results_for_llm( &self, results: Vec<SearchResult>, ) -> Vec<SearchResult>
Enhanced search result with precise location info for LLMs
Sourcepub fn deduplicate_results(
&self,
results: Vec<SearchResult>,
) -> Vec<SearchResult>
pub fn deduplicate_results( &self, results: Vec<SearchResult>, ) -> Vec<SearchResult>
Deduplicate search results by grouping similar matches
Trait Implementations§
Source§impl InternalTool for IndexTool
impl InternalTool for IndexTool
type Input = BuildInput
type Output = ComprehensiveToolOutput<IndexStats>
type Error = IndexError
Source§fn execute<'life0, 'async_trait>(
&'life0 self,
input: Self::Input,
) -> Pin<Box<dyn Future<Output = Result<Self::Output, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn execute<'life0, 'async_trait>(
&'life0 self,
input: Self::Input,
) -> Pin<Box<dyn Future<Output = Result<Self::Output, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Execute the tool with the given input
Source§fn metadata(&self) -> ToolMetadata
fn metadata(&self) -> ToolMetadata
Get tool metadata
Auto Trait Implementations§
impl Freeze for IndexTool
impl RefUnwindSafe for IndexTool
impl Send for IndexTool
impl Sync for IndexTool
impl Unpin for IndexTool
impl UnwindSafe for IndexTool
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
Mutably borrows from an owned value. Read more
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Converts
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Converts
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Converts
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Converts
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for 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>
Converts
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>
Converts
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 more