2025-08-11 01:04:16 +08:00
|
|
|
use super::constants::*;
|
2026-05-19 00:27:06 +08:00
|
|
|
pub use sol_parser_sdk::grpc::types::OrderMode;
|
2025-08-11 01:04:16 +08:00
|
|
|
|
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,
|
2026-05-19 00:27:06 +08:00
|
|
|
/// Event output ordering mode for gRPC transaction events.
|
|
|
|
|
pub order_mode: OrderMode,
|
|
|
|
|
/// Slot timeout in milliseconds for ordered modes.
|
|
|
|
|
pub order_timeout_ms: u64,
|
|
|
|
|
/// MicroBatch window size in microseconds.
|
|
|
|
|
pub micro_batch_us: u64,
|
2025-08-11 01:04:16 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl Default for StreamClientConfig {
|
|
|
|
|
fn default() -> Self {
|
2026-05-19 00:27:06 +08:00
|
|
|
Self {
|
|
|
|
|
connection: ConnectionConfig::default(),
|
|
|
|
|
enable_metrics: false,
|
|
|
|
|
order_mode: OrderMode::Unordered,
|
|
|
|
|
order_timeout_ms: 100,
|
|
|
|
|
micro_batch_us: 100,
|
|
|
|
|
}
|
2025-08-11 01:04:16 +08:00
|
|
|
}
|
|
|
|
|
}
|