perf: remove totally redundant and highly allocating .to_lowercase() calls from search endpoints
This commit is contained in:
1 parent
9476bcd649
commit
f8d98a77fd
3 files changed
+5
-5
No files matched your search
@@ -376,7 +376,7 @@ impl McpTool for VisualizeGraphHandler {
|
|||||||
|
|
||||||
async fn execute(&self, args: Value, state: Arc<MemoryState>) -> Result<String, String> {
|
async fn execute(&self, args: Value, state: Arc<MemoryState>) -> Result<String, String> {
|
||||||
let req: VisualizeGraphTool = serde_json::from_value(args).map_err(|e| e.to_string())?;
|
let req: VisualizeGraphTool = serde_json::from_value(args).map_err(|e| e.to_string())?;
|
||||||
let query = req.query.unwrap_or_default().to_lowercase();
|
let query = req.query.unwrap_or_default();
|
||||||
use std::fmt::Write;
|
use std::fmt::Write;
|
||||||
let mut output = state.read_graph(|full| {
|
let mut output = state.read_graph(|full| {
|
||||||
let mut included: HashSet<&str> = HashSet::new();
|
let mut included: HashSet<&str> = HashSet::new();
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ impl McpTool for QueryDecisionsHandler {
|
|||||||
let data = state.adrs.read_with(|adrs| {
|
let data = state.adrs.read_with(|adrs| {
|
||||||
let filtered: Vec<_> = adrs.iter().filter(|a| {
|
let filtered: Vec<_> = adrs.iter().filter(|a| {
|
||||||
if let Some(q) = &req.query {
|
if let Some(q) = &req.query {
|
||||||
let q = q.to_lowercase();
|
let q = q;
|
||||||
contains_ignore_ascii_case(&a.title, &q)
|
contains_ignore_ascii_case(&a.title, &q)
|
||||||
|| contains_ignore_ascii_case(&a.context, &q)
|
|| contains_ignore_ascii_case(&a.context, &q)
|
||||||
|| contains_ignore_ascii_case(&a.decision, &q)
|
|| contains_ignore_ascii_case(&a.decision, &q)
|
||||||
@@ -129,7 +129,7 @@ impl McpTool for SearchErrorFixesHandler {
|
|||||||
|
|
||||||
async fn execute(&self, args: Value, state: Arc<MemoryState>) -> Result<String, String> {
|
async fn execute(&self, args: Value, state: Arc<MemoryState>) -> Result<String, String> {
|
||||||
let req: SearchErrorFixesTool = serde_json::from_value(args).map_err(|e| e.to_string())?;
|
let req: SearchErrorFixesTool = serde_json::from_value(args).map_err(|e| e.to_string())?;
|
||||||
let q = req.query.to_lowercase();
|
let q = req.query;
|
||||||
let data = state.error_fixes.read_with(|fixes| {
|
let data = state.error_fixes.read_with(|fixes| {
|
||||||
let filtered: Vec<_> = fixes.iter().filter(|f| {
|
let filtered: Vec<_> = fixes.iter().filter(|f| {
|
||||||
contains_ignore_ascii_case(&f.signature, &q)
|
contains_ignore_ascii_case(&f.signature, &q)
|
||||||
@@ -399,7 +399,7 @@ impl McpTool for OmniSearchHandler {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
let q = req.query.to_lowercase();
|
let q = req.query;
|
||||||
let tech_debts = state.tech_debts.read_with(|debts| {
|
let tech_debts = state.tech_debts.read_with(|debts| {
|
||||||
debts.iter().filter(|d| {
|
debts.iter().filter(|d| {
|
||||||
req.namespace.as_ref().is_none_or(|ns| d.namespace == *ns)
|
req.namespace.as_ref().is_none_or(|ns| d.namespace == *ns)
|
||||||
|
|||||||
@@ -146,7 +146,7 @@ impl McpTool for SearchSnippetsHandler {
|
|||||||
|
|
||||||
async fn execute(&self, args: Value, state: Arc<MemoryState>) -> Result<String, String> {
|
async fn execute(&self, args: Value, state: Arc<MemoryState>) -> Result<String, String> {
|
||||||
let req: SearchSnippetsTool = serde_json::from_value(args).map_err(|e| e.to_string())?;
|
let req: SearchSnippetsTool = serde_json::from_value(args).map_err(|e| e.to_string())?;
|
||||||
let query = req.query.to_lowercase();
|
let query = req.query;
|
||||||
let data = state.snippets.read_with(|snippets| {
|
let data = state.snippets.read_with(|snippets| {
|
||||||
let results: Vec<_> = snippets.iter().filter(|s| {
|
let results: Vec<_> = snippets.iter().filter(|s| {
|
||||||
contains_ignore_ascii_case(&s.name, &query)
|
contains_ignore_ascii_case(&s.name, &query)
|
||||||
|
|||||||
Reference in new issue
Block a user