use super::InputSource;
#[derive(Debug, Clone, clap::Args)]
pub struct CommonArgs {
#[arg(short, long)]
pub input: InputSource,
#[arg(short = 'W', long)]
pub workers: Option<usize>,
#[arg(long, value_name = "SIZE", value_parser = parse_frame_budget)]
pub frame_budget: Option<u64>,
}
fn parse_frame_budget(raw: &str) -> Result<u64, String> {
raw.parse::<bytesize::ByteSize>().map(|size| size.as_u64()).map_err(|_| {
format!("invalid frame budget '{raw}'. Give a size such as 8GB, 4.5GiB, or 512MB, or a plain byte count")
})
}