@@ -123,10 +123,10 @@ fn parse_sse_events(body: &str) -> Vec<SseEvent> {
123123 let mut current_data = Vec :: < String > :: new ( ) ;
124124
125125 for line in body. lines ( ) {
126- if line. starts_with ( "event: " ) {
127- current_event = line [ " event: " . len ( ) .. ] . to_string ( ) ;
128- } else if line. starts_with ( "data: " ) {
129- current_data. push ( line [ " data: " . len ( ) .. ] . to_string ( ) ) ;
126+ if let Some ( event ) = line. strip_prefix ( "event: " ) {
127+ current_event = event. to_string ( ) ;
128+ } else if let Some ( data ) = line. strip_prefix ( "data: " ) {
129+ current_data. push ( data. to_string ( ) ) ;
130130 } else if line. is_empty ( ) && !current_event. is_empty ( ) {
131131 events. push ( SseEvent {
132132 event : std:: mem:: take ( & mut current_event) ,
@@ -518,10 +518,10 @@ fn streaming_eval_post(
518518 Ok ( l) => l,
519519 Err ( _) => break ,
520520 } ;
521- if line. starts_with ( "event: " ) {
522- current_event = line [ " event: " . len ( ) .. ] . to_string ( ) ;
523- } else if line. starts_with ( "data: " ) {
524- current_data. push ( line [ " data: " . len ( ) .. ] . to_string ( ) ) ;
521+ if let Some ( event ) = line. strip_prefix ( "event: " ) {
522+ current_event = event. to_string ( ) ;
523+ } else if let Some ( data ) = line. strip_prefix ( "data: " ) {
524+ current_data. push ( data. to_string ( ) ) ;
525525 } else if line. is_empty ( ) && !current_event. is_empty ( ) {
526526 let event = SseEvent {
527527 event : std:: mem:: take ( & mut current_event) ,
0 commit comments