use crate::client::{Client, ClientTransport};
use std::time::Duration;
pub struct ClientBuilder {
transport: Box<dyn ClientTransport>,
timeout: Option<Duration>,
}
impl ClientBuilder {
pub fn new(transport: Box<dyn ClientTransport>) -> Self {
Self {
transport,
timeout: None,
}
}
pub fn timeout(mut self, timeout: Duration) -> Self {
self.timeout = Some(timeout);
self
}
pub fn build(self) -> Client {
let mut client = Client::new(self.transport);
client.set_timeout(self.timeout);
client
}
}