(data: &str)
| 484 | } |
| 485 | |
| 486 | fn parse_vertex_sse(data: &str) -> Option<StreamEvent> { |
| 487 | if data.is_empty() || data == "[DONE]" { |
| 488 | return None; |
| 489 | } |
| 490 | |
| 491 | let response: VertexResponse = serde_json::from_str(data).ok()?; |
| 492 | |
| 493 | let text = response |
| 494 | .candidates |
| 495 | .first()? |
| 496 | .content |
| 497 | .parts |
| 498 | .first()? |
| 499 | .text |
| 500 | .clone()?; |
| 501 | |
| 502 | Some(StreamEvent::TextDelta(text)) |
| 503 | } |
no test coverage detected