22//! used across publishers, agents and routers.
33
44use {
5- crate :: router:: { JsonUpdate , SubscriptionParams } ,
5+ crate :: router:: { JsonUpdate , PriceFeedId , SubscriptionParams } ,
66 derive_more:: From ,
77 serde:: { Deserialize , Serialize } ,
88} ;
@@ -40,6 +40,7 @@ pub struct UnsubscribeRequest {
4040pub enum Response {
4141 Error ( ErrorResponse ) ,
4242 Subscribed ( SubscribedResponse ) ,
43+ SubscribedWithInvalidFeedIdsIgnored ( SubscribedWithInvalidFeedIdsIgnoredResponse ) ,
4344 Unsubscribed ( UnsubscribedResponse ) ,
4445 SubscriptionError ( SubscriptionErrorResponse ) ,
4546 StreamUpdated ( StreamUpdatedResponse ) ,
@@ -52,6 +53,22 @@ pub struct SubscribedResponse {
5253 pub subscription_id : SubscriptionId ,
5354}
5455
56+ #[ derive( Debug , Clone , PartialEq , Eq , Hash , Serialize , Deserialize ) ]
57+ #[ serde( rename_all = "camelCase" ) ]
58+ pub struct InvalidFeedSubscriptionDetails {
59+ pub unknown_ids : Vec < PriceFeedId > ,
60+ pub unsupported_channels : Vec < PriceFeedId > ,
61+ pub unstable : Vec < PriceFeedId > ,
62+ }
63+
64+ #[ derive( Debug , Clone , PartialEq , Eq , Hash , Serialize , Deserialize ) ]
65+ #[ serde( rename_all = "camelCase" ) ]
66+ pub struct SubscribedWithInvalidFeedIdsIgnoredResponse {
67+ pub subscription_id : SubscriptionId ,
68+ pub subscribed_feed_ids : Vec < PriceFeedId > ,
69+ pub ignored_invalid_feed_ids : InvalidFeedSubscriptionDetails ,
70+ }
71+
5572#[ derive( Debug , Clone , PartialEq , Eq , Hash , Serialize , Deserialize ) ]
5673#[ serde( rename_all = "camelCase" ) ]
5774pub struct UnsubscribedResponse {
0 commit comments