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;
use crate::subscriptions::Subscription;
use crate::{Client, Error};
impl Client {
pub async fn scanner_parameters(&self) -> Result<String, Error> {
request_helpers::one_shot_shared(
self,
OutgoingMessages::RequestScannerParameters,
encoders::encode_scanner_parameters,
expect_proto(decoders::decode_scanner_parameters_proto),
)
.await
}
pub async fn scanner_subscription(
&self,
subscription: &ScannerSubscription,
filter: &[TagValue],
) -> Result<Subscription<Vec<ScannerData>>, Error> {
let builder = self.request();
let request = encoders::encode_scanner_subscription(builder.request_id(), subscription, filter)?;
builder.send(request).await
}
}
#[cfg(test)]
#[path = "async_tests.rs"]
mod tests;