(text: &str)
| 493 | } |
| 494 | |
| 495 | fn parse_bedrock_stream(text: &str) -> Result<StreamEvent, ProviderError> { |
| 496 | if text.contains("\"contentBlockDelta\"") { |
| 497 | if let Some(start) = text.find("\"text\":") { |
| 498 | let rest = &text[start + 8..]; |
| 499 | if let Some(end) = rest.find("\"") { |
| 500 | let text_content = &rest[..end]; |
| 501 | if let Ok(decoded) = |
| 502 | serde_json::from_str::<String>(&format!("\"{}\"", text_content)) |
| 503 | { |
| 504 | return Ok(StreamEvent::TextDelta(decoded)); |
| 505 | } |
| 506 | return Ok(StreamEvent::TextDelta(text_content.to_string())); |
| 507 | } |
| 508 | } |
| 509 | } |
| 510 | |
| 511 | if text.contains("\"messageStop\"") { |
| 512 | return Ok(StreamEvent::Done); |
| 513 | } |
| 514 | |
| 515 | Ok(StreamEvent::TextDelta(String::new())) |
| 516 | } |
no test coverage detected