use clap::{Parser, Subcommand};
#[derive(Parser, Debug)]
#[command(name = "cargo", bin_name = "cargo")]
pub enum CargoCli {
Bill(BillArgs),
}
#[derive(clap::Args, Debug)]
#[command(
author,
version,
about = "Estimates AWS Lambda costs based on the compiled binary size."
)]
pub struct BillArgs {
#[command(subcommand)]
pub command: BillSubcommands,
}
#[derive(Subcommand, Debug)]
pub enum BillSubcommands {
Lambda(LambdaArgs),
}
#[derive(clap::Args, Debug)]
pub struct LambdaArgs {
#[arg(long, default_value = "us-east-1")]
pub region: String,
#[arg(long, default_value_t = 128)]
pub memory: u32,
#[arg(long, default_value_t = 1_000_000)]
pub executions: u64,
#[arg(long, default_value = "x86_64")]
pub architecture: String,
#[arg(long)]
pub json: bool,
#[arg(long)]
pub include_free_tier: bool,
#[arg(long)]
pub provisioned_concurrency: bool,
}
pub fn parse_args() -> BillArgs {
let CargoCli::Bill(args) = CargoCli::parse();
args
}