pub trait SemanticSearchBackend: Send + Sync {
// Required method
fn search<'a>(
&'a self,
query: &'a str,
file_pattern: Option<&'a str>,
max_results: usize,
) -> Pin<Box<dyn Future<Output = Result<Vec<SearchCodeHit>, ToolError>> + Send + 'a>>;
}