blob: 626cb11dcabaeee4e09666493c42cbd6d9bfb803 [file] [log] [blame]
use clap::Parser;
#[derive(Parser, Debug)]
#[command(author, version, about, long_about = None)]
pub struct Args {
#[arg(long, default_value = "0")]
pub message_batches_limit: u64,
#[arg(long, default_value = "iggy")]
pub username: String,
#[arg(long, default_value = "iggy")]
pub password: String,
#[arg(long, default_value = "1000")]
pub interval: u64,
#[arg(long, default_value = "9999")]
pub stream_id: u32,
#[arg(long, default_value = "1")]
pub topic_id: u32,
#[arg(long, default_value = "1")]
pub partition_id: u32,
#[arg(long, default_value = "1")]
pub partitions_count: u32,
#[arg(long, default_value = "1")]
pub compression_algorithm: u8,
#[arg(long, default_value = "1")]
pub consumer_kind: u8,
#[arg(long, default_value = "1")]
pub consumer_id: u32,
#[arg(long, default_value = "1")]
pub messages_per_batch: u32,
#[arg(long, default_value = "tcp")]
pub transport: String,
#[arg(long, default_value = "")]
pub encryption_key: String,
#[arg(long, default_value = "http://localhost:3000")]
pub http_api_url: String,
#[arg(long, default_value = "3")]
pub http_retries: u32,
#[arg(long, default_value = "3")]
pub tcp_reconnection_retries: u32,
#[arg(long, default_value = "1000")]
pub tcp_reconnection_interval: u64,
#[arg(long, default_value = "127.0.0.1:8090")]
pub tcp_server_address: String,
#[arg(long, default_value = "false")]
pub tcp_tls_enabled: bool,
#[arg(long, default_value = "localhost")]
pub tcp_tls_domain: String,
#[arg(long, default_value = "127.0.0.1:0")]
pub quic_client_address: String,
#[arg(long, default_value = "127.0.0.1:8080")]
pub quic_server_address: String,
#[arg(long, default_value = "localhost")]
pub quic_server_name: String,
#[arg(long, default_value = "3")]
pub quic_reconnection_retries: u32,
#[arg(long, default_value = "1000")]
pub quic_reconnection_interval: u64,
#[arg(long, default_value = "10000")]
pub quic_max_concurrent_bidi_streams: u64,
#[arg(long, default_value = "100000")]
pub quic_datagram_send_buffer_size: u64,
#[arg(long, default_value = "1200")]
pub quic_initial_mtu: u16,
#[arg(long, default_value = "100000")]
pub quic_send_window: u64,
#[arg(long, default_value = "100000")]
pub quic_receive_window: u64,
#[arg(long, default_value = "1048576")]
pub quic_response_buffer_size: u64,
#[arg(long, default_value = "5000")]
pub quic_keep_alive_interval: u64,
#[arg(long, default_value = "10000")]
pub quic_max_idle_timeout: u64,
#[arg(long, default_value = "false")]
pub quic_validate_certificate: bool,
}
impl Args {
pub fn to_sdk_args(&self) -> iggy::args::Args {
iggy::args::Args {
transport: self.transport.clone(),
encryption_key: self.encryption_key.clone(),
http_api_url: self.http_api_url.clone(),
http_retries: self.http_retries,
tcp_server_address: self.tcp_server_address.clone(),
tcp_reconnection_retries: self.tcp_reconnection_retries,
tcp_reconnection_interval: self.tcp_reconnection_interval,
tcp_tls_enabled: self.tcp_tls_enabled,
tcp_tls_domain: self.tcp_tls_domain.clone(),
quic_client_address: self.quic_client_address.clone(),
quic_server_address: self.quic_server_address.clone(),
quic_server_name: self.quic_server_name.clone(),
quic_reconnection_retries: self.quic_reconnection_retries,
quic_reconnection_interval: self.quic_reconnection_interval,
quic_max_concurrent_bidi_streams: self.quic_max_concurrent_bidi_streams,
quic_datagram_send_buffer_size: self.quic_datagram_send_buffer_size,
quic_initial_mtu: self.quic_initial_mtu,
quic_send_window: self.quic_send_window,
quic_receive_window: self.quic_receive_window,
quic_response_buffer_size: self.quic_response_buffer_size,
quic_keep_alive_interval: self.quic_keep_alive_interval,
quic_max_idle_timeout: self.quic_max_idle_timeout,
quic_validate_certificate: self.quic_validate_certificate,
}
}
}