2025-08-11 01:04:16 +08:00
|
|
|
use super::constants::*;
|
|
|
|
|
|
2025-08-29 14:59:16 +08:00
|
|
|
/// Connection configuration
|
2025-08-11 01:04:16 +08:00
|
|
|
#[derive(Debug, Clone)]
|
|
|
|
|
pub struct ConnectionConfig {
|
2025-08-29 14:59:16 +08:00
|
|
|
/// Connection timeout in seconds (default: 10)
|
2025-08-11 01:04:16 +08:00
|
|
|
pub connect_timeout: u64,
|
2025-08-29 14:59:16 +08:00
|
|
|
/// Request timeout in seconds (default: 60)
|
2025-08-11 01:04:16 +08:00
|
|
|
pub request_timeout: u64,
|
2025-08-29 14:59:16 +08:00
|
|
|
/// Maximum decoding message size in bytes (default: 10MB)
|
2025-08-11 01:04:16 +08:00
|
|
|
pub max_decoding_message_size: usize,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl Default for ConnectionConfig {
|
|
|
|
|
fn default() -> Self {
|
|
|
|
|
Self {
|
|
|
|
|
connect_timeout: DEFAULT_CONNECT_TIMEOUT,
|
|
|
|
|
request_timeout: DEFAULT_REQUEST_TIMEOUT,
|
|
|
|
|
max_decoding_message_size: DEFAULT_MAX_DECODING_MESSAGE_SIZE,
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2025-08-29 14:59:16 +08:00
|
|
|
/// Common client configuration
|
2025-08-11 01:04:16 +08:00
|
|
|
#[derive(Debug, Clone)]
|
|
|
|
|
pub struct StreamClientConfig {
|
2025-08-29 14:59:16 +08:00
|
|
|
/// Connection configuration
|
2025-08-11 01:04:16 +08:00
|
|
|
pub connection: ConnectionConfig,
|
2025-08-29 14:59:16 +08:00
|
|
|
/// Whether performance monitoring is enabled (default: false)
|
2025-08-11 01:04:16 +08:00
|
|
|
pub enable_metrics: bool,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl Default for StreamClientConfig {
|
|
|
|
|
fn default() -> Self {
|
2025-10-10 18:19:44 +08:00
|
|
|
Self { connection: ConnectionConfig::default(), enable_metrics: false }
|
2025-08-11 01:04:16 +08:00
|
|
|
}
|
|
|
|
|
}
|