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>) -> Self
pub fn new(endpoints: Vec<String>) -> Self
Create a new builder with default config and specified endpoints
Sourcepub fn connect_timeout(self, timeout: Duration) -> Self
pub fn connect_timeout(self, timeout: Duration) -> Self
Set connection timeout (default: 1s)
Sourcepub fn request_timeout(self, timeout: Duration) -> Self
pub fn request_timeout(self, timeout: Duration) -> Self
Set request timeout (default: 3s)
Sourcepub fn enable_compression(self, enable: bool) -> Self
pub fn enable_compression(self, enable: bool) -> Self
Enable/disable compression (default: enabled)
Sourcepub fn set_config(self, config: ClientConfig) -> Self
pub fn set_config(self, config: ClientConfig) -> Self
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, 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