use clap::{Args, Subcommand};

/// AUTO-GENERATED BY Kam/scripts/add_missing_docs.py: placeholder documentation for public struct 'TomlArgs'. Replace with real documentation. (2025-12-30T22:23:21Z)
#[derive(Args, Debug)]
pub struct TomlArgs {
    /// Operate on the project's kam.toml (default), or specify file using --file
    #[arg(long)]
    pub file: Option<String>,

    #[command(subcommand)]
    /// AUTO-GENERATED BY Kam/scripts/add_missing_docs.py: placeholder documentation for public field 'command' in 'TomlArgs'. Replace with real documentation. (2025-12-30T22:23:21Z)
    pub command: TomlCommand,
}

/// AUTO-GENERATED BY Kam/scripts/add_missing_docs.py: placeholder documentation for public enum 'TomlCommand'. Replace with real documentation. (2025-12-30T22:23:21Z)
#[derive(Subcommand, Debug)]
pub enum TomlCommand {
    /// Get a value by dot-separated key path
    Get {
        /// Dot-separated key path to retrieve (e.g., `prop.id`)
        key: String,
    },
    /// Set a value by key (usage: kam toml set prop.name=value | kam toml set prop.name value)
    Set {
        /// Dot-separated key path to set (e.g., `prop.id`)
        key: String,
        /// Value to set for the given key (if omitted, value may be read from stdin)
        value: Option<String>,
    },
    /// Unset/remove a key
    Unset {
        /// Dot-separated key path to remove
        key: String,
    },
    /// Dump the full toml
    List,
}
