(prompt: &str)
| 238 | } |
| 239 | |
| 240 | fn detect_domain_from_prompt(prompt: &str) -> String { |
| 241 | let lower = prompt.to_lowercase(); |
| 242 | |
| 243 | if lower.contains("rust") || lower.contains("cargo") || lower.contains(".rs") { |
| 244 | "rust".to_string() |
| 245 | } else if lower.contains("javascript") |
| 246 | || lower.contains("typescript") |
| 247 | || lower.contains("node") |
| 248 | || lower.contains(".js") |
| 249 | || lower.contains(".ts") |
| 250 | { |
| 251 | "javascript".to_string() |
| 252 | } else if lower.contains("python") || lower.contains(".py") { |
| 253 | "python".to_string() |
| 254 | } else if lower.contains("go") || lower.contains(".go") { |
| 255 | "go".to_string() |
| 256 | } else if lower.contains("java") || lower.contains(".java") { |
| 257 | "java".to_string() |
| 258 | } else if lower.contains("docker") || lower.contains("container") { |
| 259 | "docker".to_string() |
| 260 | } else if lower.contains("kubernetes") || lower.contains("k8s") { |
| 261 | "kubernetes".to_string() |
| 262 | } else if lower.contains("sql") |
| 263 | || lower.contains("database") |
| 264 | || lower.contains("postgres") |
| 265 | || lower.contains("mysql") |
| 266 | { |
| 267 | "database".to_string() |
| 268 | } else if lower.contains("api") || lower.contains("rest") || lower.contains("grpc") { |
| 269 | "api".to_string() |
| 270 | } else if lower.contains("auth") |
| 271 | || lower.contains("login") |
| 272 | || lower.contains("password") |
| 273 | || lower.contains("token") |
| 274 | { |
| 275 | "security".to_string() |
| 276 | } else if lower.contains("test") || lower.contains("spec") || lower.contains("mock") { |
| 277 | "testing".to_string() |
| 278 | } else { |
| 279 | "general".to_string() |
| 280 | } |
| 281 | } |
| 282 | |
| 283 | #[cfg(feature = "ahp")] |
| 284 | fn estimate_tokens(text: &str) -> usize { |
no test coverage detected