use super::*;
impl Default for RequestBuilder {
#[inline(always)]
fn default() -> Self {
Self {
udp_request: UdpRequest::default(),
builder: UdpRequest::default(),
}
}
}
impl RequestBuilder {
#[inline(always)]
pub fn new() -> Self {
Self::default()
}
pub fn host<T>(&mut self, host: T) -> &mut Self
where
T: Into<String>,
{
let _: Result<(), PoisonError<RwLockWriteGuard<'_, Config>>> =
self.get_udp_request().get_config().write().map(
|mut data: RwLockWriteGuard<'_, Config>| {
data.host = host.into();
},
);
self
}
pub fn port(&mut self, port: usize) -> &mut Self {
let _: Result<(), PoisonError<RwLockWriteGuard<'_, Config>>> =
self.get_udp_request().get_config().write().map(
|mut data: RwLockWriteGuard<'_, Config>| {
data.port = port;
},
);
self
}
pub fn buffer(&mut self, buffer_size: usize) -> &mut Self {
let _: Result<(), PoisonError<RwLockWriteGuard<'_, Config>>> =
self.get_udp_request().get_config().write().map(
|mut data: RwLockWriteGuard<'_, Config>| {
data.buffer_size = buffer_size;
},
);
self
}
pub fn timeout(&mut self, timeout: u64) -> &mut Self {
let _: Result<(), PoisonError<RwLockWriteGuard<'_, Config>>> =
self.get_udp_request().get_config().write().map(
|mut data: RwLockWriteGuard<'_, Config>| {
data.timeout = timeout;
},
);
self
}
pub fn build(&mut self) -> BoxRequestTrait {
let udp_request: UdpRequest = self.get_udp_request().clone();
self.set_builder(udp_request);
self.set_udp_request(UdpRequest::default());
Box::new(self.get_builder().clone())
}
}