use clap::Parser;
use super::nonneg_f64;
#[derive(Parser, Debug)]
#[command(version, about = "Simulate a Twinleaf device over UDP")]
pub struct SimulateCli {
#[arg(
long = "samplerate",
alias = "sample-rate",
default_value = "1000",
value_parser = clap::value_parser!(u32).range(1..)
)]
pub(crate) samplerate: u32,
#[arg(long = "frequency", default_value = "10", value_parser = nonneg_f64)]
pub(crate) frequency: f64,
#[arg(long = "amplitude", default_value = "1", value_parser = nonneg_f64)]
pub(crate) amplitude: f64,
#[arg(long = "noise", default_value = ".01", value_parser = nonneg_f64)]
pub(crate) noise: f64,
#[arg(
long = "segment-seconds",
default_value = "10",
value_parser = clap::value_parser!(u32).range(1..)
)]
pub(crate) segment_seconds: u32,
#[arg(long = "port", default_value = "7855")]
pub(crate) port: u16,
}