pub struct ClientBuilder { /* private fields */ }Expand description
Configurable builder for Client instances
Implements the builder pattern for constructing clients with customized connection parameters and timeouts.
§Typical Usage Flow
- Create with
ClientBuilder::new() - Chain configuration methods
- Finalize with
.build()
§Default Configuration
- Compression: Enabled
- Connect Timeout: 1s
- Request Timeout: 3s
Implementations§
Source§impl ClientBuilder
impl ClientBuilder
Sourcepub fn new(endpoints: Vec<String>) -> ClientBuilder
pub fn new(endpoints: Vec<String>) -> ClientBuilder
Create a new builder with default config and specified endpoints
Sourcepub fn connect_timeout(self, timeout: Duration) -> ClientBuilder
pub fn connect_timeout(self, timeout: Duration) -> ClientBuilder
Set connection timeout (default: 1s)
Sourcepub fn request_timeout(self, timeout: Duration) -> ClientBuilder
pub fn request_timeout(self, timeout: Duration) -> ClientBuilder
Set request timeout (default: 3s)
Sourcepub fn enable_compression(self, enable: bool) -> ClientBuilder
pub fn enable_compression(self, enable: bool) -> ClientBuilder
Enable/disable compression (default: enabled)
Sourcepub fn set_config(self, config: ClientConfig) -> ClientBuilder
pub fn set_config(self, config: ClientConfig) -> ClientBuilder
Completely replaces the default configuration
§Warning: Configuration Override
This will discard all previous settings configured through individual
methods like connect_timeout or
enable_compression.
§Usage Guidance
Choose either:
- Use granular configuration methods (recommended for most cases)
- Use this method to provide a full configuration object
§Example: Full Configuration
use d_engine_client::ClientBuilder;
use d_engine_client::ClientConfig;
use std::time::Duration;
let custom_config = ClientConfig {
connect_timeout: Duration::from_secs(2),
request_timeout: Duration::from_secs(5),
..ClientConfig::default()
};
let builder = ClientBuilder::new(vec!["http://node1:9081".into()])
.set_config(custom_config);Sourcepub async fn build(self) -> Result<Client, ClientApiError>
pub async fn build(self) -> Result<Client, ClientApiError>
Build the client with current configuration
Auto Trait Implementations§
impl Freeze for ClientBuilder
impl RefUnwindSafe for ClientBuilder
impl Send for ClientBuilder
impl Sync for ClientBuilder
impl Unpin for ClientBuilder
impl UnwindSafe for ClientBuilder
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request