use super::update_config_builder::UpdateConfigBuilder;
use crate::client::sync::Client;
use crate::common::request_helpers;
use crate::config::common::{decoders, encoders};
use crate::config::UpdateConfigResponse;
use crate::protocol::{check_version, Features};
use crate::Error;
impl UpdateConfigBuilder<'_, Client> {
pub fn submit(self) -> Result<UpdateConfigResponse, Error> {
check_version(self.client.server_version, Features::UPDATE_CONFIG)?;
request_helpers::blocking::one_shot_request_with_retry(
self.client,
|request_id| encoders::encode_update_config(&self.to_proto(request_id)),
decoders::decode_update_config_message,
|| Err(Error::UnexpectedEndOfStream),
)
}
}
#[cfg(test)]
#[path = "sync_impl_tests.rs"]
mod tests;