@@ -2,9 +2,7 @@ use std::time::Duration;
2
2
3
3
use backoff:: { backoff:: Backoff , ExponentialBackoff } ;
4
4
use futures_util:: StreamExt ;
5
- use pyth_lazer_protocol:: subscription:: {
6
- Request , SubscribeRequest , SubscriptionId , UnsubscribeRequest ,
7
- } ;
5
+ use pyth_lazer_protocol:: api:: { SubscribeRequest , SubscriptionId , UnsubscribeRequest , WsRequest } ;
8
6
use tokio:: { pin, select, sync:: mpsc, time:: Instant } ;
9
7
use tracing:: { error, info, warn} ;
10
8
use url:: Url ;
@@ -18,7 +16,7 @@ use anyhow::{bail, Context, Result};
18
16
const BACKOFF_RESET_DURATION : Duration = Duration :: from_secs ( 10 ) ;
19
17
20
18
pub struct PythLazerResilientWSConnection {
21
- request_sender : mpsc:: Sender < Request > ,
19
+ request_sender : mpsc:: Sender < WsRequest > ,
22
20
}
23
21
24
22
impl PythLazerResilientWSConnection {
@@ -53,15 +51,17 @@ impl PythLazerResilientWSConnection {
53
51
54
52
pub async fn subscribe ( & mut self , request : SubscribeRequest ) -> Result < ( ) > {
55
53
self . request_sender
56
- . send ( Request :: Subscribe ( request) )
54
+ . send ( WsRequest :: Subscribe ( request) )
57
55
. await
58
56
. context ( "Failed to send subscribe request" ) ?;
59
57
Ok ( ( ) )
60
58
}
61
59
62
60
pub async fn unsubscribe ( & mut self , subscription_id : SubscriptionId ) -> Result < ( ) > {
63
61
self . request_sender
64
- . send ( Request :: Unsubscribe ( UnsubscribeRequest { subscription_id } ) )
62
+ . send ( WsRequest :: Unsubscribe ( UnsubscribeRequest {
63
+ subscription_id,
64
+ } ) )
65
65
. await
66
66
. context ( "Failed to send unsubscribe request" ) ?;
67
67
Ok ( ( ) )
@@ -95,7 +95,7 @@ impl PythLazerResilientWSConnectionTask {
95
95
pub async fn run (
96
96
& mut self ,
97
97
response_sender : mpsc:: Sender < AnyResponse > ,
98
- request_receiver : & mut mpsc:: Receiver < Request > ,
98
+ request_receiver : & mut mpsc:: Receiver < WsRequest > ,
99
99
) -> Result < ( ) > {
100
100
loop {
101
101
let start_time = Instant :: now ( ) ;
@@ -128,7 +128,7 @@ impl PythLazerResilientWSConnectionTask {
128
128
pub async fn start (
129
129
& mut self ,
130
130
sender : mpsc:: Sender < AnyResponse > ,
131
- request_receiver : & mut mpsc:: Receiver < Request > ,
131
+ request_receiver : & mut mpsc:: Receiver < WsRequest > ,
132
132
) -> Result < ( ) > {
133
133
let mut ws_connection =
134
134
PythLazerWSConnection :: new ( self . endpoint . clone ( ) , self . access_token . clone ( ) ) ?;
@@ -137,7 +137,7 @@ impl PythLazerResilientWSConnectionTask {
137
137
138
138
for subscription in self . subscriptions . clone ( ) {
139
139
ws_connection
140
- . send_request ( Request :: Subscribe ( subscription) )
140
+ . send_request ( WsRequest :: Subscribe ( subscription) )
141
141
. await ?;
142
142
}
143
143
loop {
@@ -167,10 +167,10 @@ impl PythLazerResilientWSConnectionTask {
167
167
}
168
168
Some ( request) = request_receiver. recv( ) => {
169
169
match request {
170
- Request :: Subscribe ( request) => {
170
+ WsRequest :: Subscribe ( request) => {
171
171
self . subscribe( & mut ws_connection, request) . await ?;
172
172
}
173
- Request :: Unsubscribe ( request) => {
173
+ WsRequest :: Unsubscribe ( request) => {
174
174
self . unsubscribe( & mut ws_connection, request) . await ?;
175
175
}
176
176
}
0 commit comments