pub struct ClientConfig {
pub connection: ConnectionConfig,
pub cache: CacheConfig,
pub logging: LoggingConfig,
}Expand description
Complete client configuration
Fields§
§connection: ConnectionConfigConnection settings
cache: CacheConfigCache configuration
logging: LoggingConfigLogging configuration
Implementations§
Source§impl ClientConfig
impl ClientConfig
Sourcepub fn load(args: ClientArgs) -> Result<Self, ConfigError>
pub fn load(args: ClientArgs) -> Result<Self, ConfigError>
Load configuration from multiple sources in order of precedence:
- Command line arguments (highest priority)
- Environment variables (handled by clap’s
envattribute onClientArgs) - Configuration file
- Default values (lowest priority)
§Adding New Arguments
When you add a new field to ClientArgs:
- Add the corresponding override logic below in the “Apply CLI argument overrides” section
- Map the
ClientArgsfield to the appropriateClientConfigfield - Add a test in the
testsmodule to verify the override works
Sourcepub fn validate(&self) -> Result<(), ConfigError>
pub fn validate(&self) -> Result<(), ConfigError>
Validate the configuration
Sourcepub fn grpc_endpoint(&self) -> &str
pub fn grpc_endpoint(&self) -> &str
Get the gRPC endpoint for backward compatibility
Sourcepub fn timeout_secs(&self) -> Option<u64>
pub fn timeout_secs(&self) -> Option<u64>
Get the timeout in seconds for backward compatibility
Sourcepub fn for_testing(endpoint: impl Into<String>) -> Self
pub fn for_testing(endpoint: impl Into<String>) -> Self
Create a simple client config for testing
Sourcepub fn with_cache_path(self, cache_path: Option<PathBuf>) -> Self
pub fn with_cache_path(self, cache_path: Option<PathBuf>) -> Self
Apply cache path override if provided
Sourcepub fn with_timeout(self, timeout_secs: u64) -> Self
pub fn with_timeout(self, timeout_secs: u64) -> Self
Set timeout for the connection
Sourcepub fn with_endpoint(self, endpoint: String) -> Self
pub fn with_endpoint(self, endpoint: String) -> Self
Set the server endpoint for both connection and cache
Trait Implementations§
Source§impl Clone for ClientConfig
impl Clone for ClientConfig
Source§fn clone(&self) -> ClientConfig
fn clone(&self) -> ClientConfig
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ClientConfig
impl Debug for ClientConfig
Source§impl Default for ClientConfig
impl Default for ClientConfig
Source§fn default() -> ClientConfig
fn default() -> ClientConfig
Returns the “default value” for a type. Read more
Source§impl<'de> Deserialize<'de> for ClientConfig
impl<'de> Deserialize<'de> for ClientConfig
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for ClientConfig
impl RefUnwindSafe for ClientConfig
impl Send for ClientConfig
impl Sync for ClientConfig
impl Unpin for ClientConfig
impl UnwindSafe for ClientConfig
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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