Strip ```json ... ``` or ``` ... ``` fences.
(text: &str)
| 334 | |
| 335 | /// Strip ```json ... ``` or ``` ... ``` fences. |
| 336 | fn strip_code_fence(text: &str) -> Option<&str> { |
| 337 | let start_patterns = ["```json\n", "```json\r\n", "```\n", "```\r\n"]; |
| 338 | for pat in &start_patterns { |
| 339 | if let Some(rest) = text.strip_prefix(pat) { |
| 340 | // Find closing fence |
| 341 | if let Some(end) = rest.rfind("```") { |
| 342 | return Some(&rest[..end]); |
| 343 | } |
| 344 | } |
| 345 | } |
| 346 | // Also handle inline: ```json{...}``` |
| 347 | if let Some(inner) = text.strip_prefix("```json") { |
| 348 | if let Some(end) = inner.rfind("```") { |
| 349 | return Some(inner[..end].trim()); |
| 350 | } |
| 351 | } |
| 352 | if let Some(inner) = text.strip_prefix("```") { |
| 353 | if let Some(end) = inner.rfind("```") { |
| 354 | return Some(inner[..end].trim()); |
| 355 | } |
| 356 | } |
| 357 | None |
| 358 | } |
| 359 | |
| 360 | /// Find the first balanced `{...}` substring using bracket counting. |
| 361 | fn find_balanced_json_object(text: &str) -> Option<&str> { |
no outgoing calls
no test coverage detected