(prompt: &str, _patterns: &[&str])
| 205 | } |
| 206 | |
| 207 | fn extract_target_name_from_prompt(prompt: &str, _patterns: &[&str]) -> String { |
| 208 | if let Some(start) = prompt.find('"') { |
| 209 | if let Some(end) = prompt[start + 1..].find('"') { |
| 210 | return prompt[start + 1..start + 1 + end].to_string(); |
| 211 | } |
| 212 | } |
| 213 | |
| 214 | if let Some(start) = prompt.find('\'') { |
| 215 | if let Some(end) = prompt[start + 1..].find('\'') { |
| 216 | return prompt[start + 1..start + 1 + end].to_string(); |
| 217 | } |
| 218 | } |
| 219 | |
| 220 | if let Some(start) = prompt.find('`') { |
| 221 | if let Some(end) = prompt[start + 1..].find('`') { |
| 222 | return prompt[start + 1..start + 1 + end].to_string(); |
| 223 | } |
| 224 | } |
| 225 | |
| 226 | let words: Vec<&str> = prompt.split_whitespace().collect(); |
| 227 | if words.len() > 2 { |
| 228 | for word in words.iter() { |
| 229 | if word.len() > 3 |
| 230 | && !["where", "what", "find", "the", "how", "is", "are"].contains(word) |
| 231 | { |
| 232 | return word.to_string(); |
| 233 | } |
| 234 | } |
| 235 | } |
| 236 | |
| 237 | String::new() |
| 238 | } |
| 239 | |
| 240 | fn detect_domain_from_prompt(prompt: &str) -> String { |
| 241 | let lower = prompt.to_lowercase(); |
no test coverage detected