1- use crate :: error:: { Result , SofosError } ;
21use super :: types:: * ;
2+ use crate :: error:: { Result , SofosError } ;
33use futures:: stream:: { Stream , StreamExt } ;
44use reqwest:: header:: { HeaderMap , HeaderValue , CONTENT_TYPE } ;
55use std:: pin:: Pin ;
@@ -21,10 +21,7 @@ impl AnthropicClient {
2121 HeaderValue :: from_str ( & api_key)
2222 . map_err ( |e| SofosError :: Config ( format ! ( "Invalid API key format: {}" , e) ) ) ?,
2323 ) ;
24- headers. insert (
25- "anthropic-version" ,
26- HeaderValue :: from_static ( API_VERSION ) ,
27- ) ;
24+ headers. insert ( "anthropic-version" , HeaderValue :: from_static ( API_VERSION ) ) ;
2825 headers. insert ( CONTENT_TYPE , HeaderValue :: from_static ( "application/json" ) ) ;
2926
3027 let client = reqwest:: Client :: builder ( )
@@ -42,12 +39,7 @@ impl AnthropicClient {
4239 ) -> Result < CreateMessageResponse > {
4340 let url = format ! ( "{}/messages" , API_BASE ) ;
4441
45- let response = self
46- . client
47- . post ( & url)
48- . json ( & request)
49- . send ( )
50- . await ?;
42+ let response = self . client . post ( & url) . json ( & request) . send ( ) . await ?;
5143
5244 if !response. status ( ) . is_success ( ) {
5345 let status = response. status ( ) ;
@@ -69,12 +61,7 @@ impl AnthropicClient {
6961 request. stream = Some ( true ) ;
7062 let url = format ! ( "{}/messages" , API_BASE ) ;
7163
72- let response = self
73- . client
74- . post ( & url)
75- . json ( & request)
76- . send ( )
77- . await ?;
64+ let response = self . client . post ( & url) . json ( & request) . send ( ) . await ?;
7865
7966 if !response. status ( ) . is_success ( ) {
8067 let status = response. status ( ) ;
@@ -88,12 +75,10 @@ impl AnthropicClient {
8875 let stream = response
8976 . bytes_stream ( )
9077 . map ( |result| {
91- result
92- . map_err ( SofosError :: from)
93- . and_then ( |bytes| {
94- let text = String :: from_utf8_lossy ( & bytes) ;
95- _parse_sse_events ( & text)
96- } )
78+ result. map_err ( SofosError :: from) . and_then ( |bytes| {
79+ let text = String :: from_utf8_lossy ( & bytes) ;
80+ _parse_sse_events ( & text)
81+ } )
9782 } )
9883 . flat_map ( |result| {
9984 futures:: stream:: iter ( match result {
@@ -110,8 +95,7 @@ fn _parse_sse_events(text: &str) -> Result<Vec<_StreamEvent>> {
11095 let mut events = Vec :: new ( ) ;
11196
11297 for line in text. lines ( ) {
113- if line. starts_with ( "data: " ) {
114- let json_str = & line[ 6 ..] ; // Skip "data: "
98+ if let Some ( json_str) = line. strip_prefix ( "data: " ) {
11599 if json_str. trim ( ) == "[DONE]" {
116100 break ;
117101 }
0 commit comments