@@ -6,7 +6,8 @@ use crate::{
66 model:: {
77 CancelledNotification , CancelledNotificationParam , JsonRpcBatchRequestItem ,
88 JsonRpcBatchResponseItem , JsonRpcError , JsonRpcMessage , JsonRpcNotification ,
9- JsonRpcRequest , JsonRpcResponse , ProgressToken , RequestId , RequestMeta , WithMeta ,
9+ JsonRpcRequest , JsonRpcResponse , NumberOrString , ProgressToken , RequestId , RequestMeta ,
10+ WithMeta ,
1011 } ,
1112 transport:: IntoTransport ,
1213} ;
@@ -220,8 +221,10 @@ impl RequestIdProvider for AtomicU32Provider {
220221}
221222
222223impl ProgressTokenProvider for AtomicU32Provider {
223- fn next_progress_token ( & self ) -> RequestId {
224- RequestId :: Number ( self . id . fetch_add ( 1 , std:: sync:: atomic:: Ordering :: SeqCst ) )
224+ fn next_progress_token ( & self ) -> ProgressToken {
225+ ProgressToken ( NumberOrString :: Number (
226+ self . id . fetch_add ( 1 , std:: sync:: atomic:: Ordering :: SeqCst ) ,
227+ ) )
225228 }
226229}
227230
@@ -379,9 +382,9 @@ impl<R: ServiceRole> Peer<R> {
379382 ) -> Result < RequestHandle < R > , ServiceError > {
380383 let id = self . request_id_provider . next_request_id ( ) ;
381384 let progress_token = self . progress_token_provider . next_progress_token ( ) ;
382- request. set_meta ( Some ( RequestMeta {
383- progress_token : progress_token. clone ( ) ,
384- } ) ) ;
385+ if let Some ( meta ) = request. get_meta_mut ( ) {
386+ meta . progress_token = Some ( progress_token. clone ( ) ) ;
387+ } ;
385388 let ( responder, receiver) = tokio:: sync:: oneshot:: channel ( ) ;
386389 self . tx
387390 . send ( PeerSinkMessage :: Request {
0 commit comments