From 224126d35e49b14b57e7a5935b5134fb14a272cf Mon Sep 17 00:00:00 2001 From: Jonathan Watt Date: Sun, 4 Oct 2026 20:09:24 +0100 Subject: [PATCH] scanner: use the request builder for scanner_subscription Both clients now use request() and builder.send instead of assembling the Subscription by hand, as market data and display groups do. No behaviour change. --- src/scanner/async.rs | 15 ++++----------- src/scanner/sync.rs | 12 ++++-------- 2 files changed, 8 insertions(+), 19 deletions(-) diff --git a/src/scanner/async.rs b/src/scanner/async.rs index af8ff7d9f..a041233f2 100644 --- a/src/scanner/async.rs +++ b/src/scanner/async.rs @@ -2,6 +2,7 @@ use super::common::{decoders, encoders}; use super::*; +use crate::client::ClientRequestBuilders; use crate::common::request_helpers::{self, expect_proto}; use crate::contracts::TagValue; use crate::messages::OutgoingMessages; @@ -86,17 +87,9 @@ impl Client { )? } - let request_id = self.mint_request_id(); - let request = encoders::encode_scanner_subscription(request_id.raw(), subscription, filter)?; - let internal_subscription = self.send_request(request_id, request).await?; - - Ok(Subscription::new_from_internal( - internal_subscription, - self.message_bus.clone(), - Some(request_id.raw()), - None, - self.decoder_context(), - )) + let builder = self.request(); + let request = encoders::encode_scanner_subscription(builder.request_id(), subscription, filter)?; + builder.send(request).await } } diff --git a/src/scanner/sync.rs b/src/scanner/sync.rs index 38de6794c..a258bf3bb 100644 --- a/src/scanner/sync.rs +++ b/src/scanner/sync.rs @@ -1,10 +1,8 @@ //! Synchronous implementation of scanner functionality -use std::sync::Arc; - use super::common::{decoders, encoders}; use super::*; -use crate::client::blocking::Subscription; +use crate::client::blocking::{ClientRequestBuilders, Subscription}; use crate::client::sync::Client; use crate::common::request_helpers::{self, expect_proto}; use crate::contracts::TagValue; @@ -91,11 +89,9 @@ impl Client { )? } - let request_id = self.mint_request_id(); - let request = encoders::encode_scanner_subscription(request_id.raw(), subscription, filter)?; - let subscription = self.send_request(request_id, request)?; - - Ok(Subscription::new(Arc::clone(&self.message_bus), subscription, self.decoder_context())) + let builder = self.request(); + let request = encoders::encode_scanner_subscription(builder.request_id(), subscription, filter)?; + builder.send(request) } }