@@ -326,17 +326,71 @@ pub struct PriceFeedMetadata {
326326}
327327
328328#[ derive( Debug , Serialize , Deserialize , PartialEq , ToSchema ) ]
329- #[ serde( rename_all = "lowercase " ) ]
329+ #[ serde( rename_all = "snake_case " ) ]
330330pub enum AssetType {
331331 Crypto ,
332+ #[ serde( rename = "fx" ) ]
332333 FX ,
333334 Equity ,
334- Metals ,
335+ Metal ,
335336 Rates ,
337+ CryptoRedemptionRate ,
336338}
337339
338340impl Display for AssetType {
339341 fn fmt ( & self , f : & mut Formatter ) -> FmtResult {
340- write ! ( f, "{:?}" , self )
342+ match self {
343+ AssetType :: Crypto => write ! ( f, "crypto" ) ,
344+ AssetType :: FX => write ! ( f, "fx" ) ,
345+ AssetType :: Equity => write ! ( f, "equity" ) ,
346+ AssetType :: Metal => write ! ( f, "metal" ) ,
347+ AssetType :: Rates => write ! ( f, "rates" ) ,
348+ AssetType :: CryptoRedemptionRate => write ! ( f, "crypto_redemption_rate" ) ,
349+ }
350+ }
351+ }
352+
353+ #[ cfg( test) ]
354+ mod tests {
355+ use super :: * ;
356+
357+ #[ test]
358+ fn test_serialize_matches_display ( ) {
359+ assert_eq ! (
360+ AssetType :: Crypto . to_string( ) ,
361+ serde_json:: to_string( & AssetType :: Crypto )
362+ . unwrap( )
363+ . trim_matches( '"' )
364+ ) ;
365+ assert_eq ! (
366+ AssetType :: FX . to_string( ) ,
367+ serde_json:: to_string( & AssetType :: FX )
368+ . unwrap( )
369+ . trim_matches( '"' )
370+ ) ;
371+ assert_eq ! (
372+ AssetType :: Equity . to_string( ) ,
373+ serde_json:: to_string( & AssetType :: Equity )
374+ . unwrap( )
375+ . trim_matches( '"' )
376+ ) ;
377+ assert_eq ! (
378+ AssetType :: Metal . to_string( ) ,
379+ serde_json:: to_string( & AssetType :: Metal )
380+ . unwrap( )
381+ . trim_matches( '"' )
382+ ) ;
383+ assert_eq ! (
384+ AssetType :: Rates . to_string( ) ,
385+ serde_json:: to_string( & AssetType :: Rates )
386+ . unwrap( )
387+ . trim_matches( '"' )
388+ ) ;
389+ assert_eq ! (
390+ AssetType :: CryptoRedemptionRate . to_string( ) ,
391+ serde_json:: to_string( & AssetType :: CryptoRedemptionRate )
392+ . unwrap( )
393+ . trim_matches( '"' )
394+ ) ;
341395 }
342396}
0 commit comments