@@ -14,11 +14,6 @@ use serde_json::Map;
1414use tracing:: error;
1515use uuid:: Uuid ;
1616
17- use crate :: api_client:: error:: {
18- ApiClientError ,
19- ConverseStreamError ,
20- } ;
21-
2217#[ derive( Debug , Clone , Serialize , Deserialize ) ]
2318#[ serde( rename_all = "camelCase" ) ]
2419pub enum StreamEvent {
@@ -74,12 +69,10 @@ impl StreamError {
7469 self
7570 }
7671
77- /// Helper for downcasting the error source to [ConverseStreamError].
78- ///
79- /// Just defining this here for simplicity
80- pub fn as_rts_error ( & self ) -> Option < & ConverseStreamError > {
72+ /// Helper for downcasting a [StreamErrorSource] to a concrete type.
73+ pub fn as_concrete_error < T : StreamErrorSource > ( & self ) -> Option < & T > {
8174 if let Some ( source) = & self . source {
82- ( * source) . as_any ( ) . downcast_ref :: < ConverseStreamError > ( )
75+ ( * source) . as_any ( ) . downcast_ref :: < T > ( )
8376 } else {
8477 None
8578 }
@@ -164,18 +157,6 @@ pub trait StreamErrorSource: std::any::Any + std::error::Error + Send + Sync {
164157 fn as_any ( & self ) -> & dyn std:: any:: Any ;
165158}
166159
167- impl StreamErrorSource for ConverseStreamError {
168- fn as_any ( & self ) -> & dyn std:: any:: Any {
169- self
170- }
171- }
172-
173- impl StreamErrorSource for ApiClientError {
174- fn as_any ( & self ) -> & dyn std:: any:: Any {
175- self
176- }
177- }
178-
179160#[ derive( Debug , Clone , Serialize , Deserialize ) ]
180161#[ serde( rename_all = "camelCase" ) ]
181162pub struct Message {
@@ -573,7 +554,6 @@ mod tests {
573554 use std:: str:: FromStr ;
574555
575556 use super :: * ;
576- use crate :: api_client:: error:: ConverseStreamErrorKind ;
577557
578558 macro_rules! test_ser_deser {
579559 ( $ty: ident, $variant: expr, $text: expr) => {
@@ -585,19 +565,6 @@ mod tests {
585565 } ;
586566 }
587567
588- #[ test]
589- fn test_other_stream_err_downcasting ( ) {
590- let err = StreamError :: new ( StreamErrorKind :: Interrupted ) . with_source ( Arc :: new ( ConverseStreamError :: new (
591- ConverseStreamErrorKind :: ModelOverloadedError ,
592- None :: < aws_smithy_types:: error:: operation:: BuildError > , /* annoying type inference
593- * required */
594- ) ) ) ;
595- assert ! (
596- err. as_rts_error( )
597- . is_some_and( |r| matches!( r. kind, ConverseStreamErrorKind :: ModelOverloadedError ) )
598- ) ;
599- }
600-
601568 #[ test]
602569 fn test_image_format_ser_deser ( ) {
603570 test_ser_deser ! ( ImageFormat , ImageFormat :: Gif , "gif" ) ;
0 commit comments