atac 0.20.0

Arguably a Terminal API Client. Feature-full, free, open-source, offline and account-less.
use clap::{Subcommand, ValueEnum};
use serde::{Deserialize, Serialize};
use strum::Display;

#[derive(Subcommand, Debug, Clone)]
pub enum SettingsCommand {
    /// Print all the request settings
    All,
    /// Print the current request setting
    Get {
        /// Setting name to get status
        setting_name: RequestSettingName
    },
    /// Set the request method
    Set {
        /// Setting name to set status
        setting_name: RequestSettingName,

        /// New state to apply to the setting
        #[clap(action = clap::ArgAction::Set)]
        new_state: bool
    }
}

#[derive(Debug, Copy, Clone, ValueEnum, Display, Serialize, Deserialize)]
pub enum RequestSettingName {
    /// Use config proxy
    Proxy,
    /// Allow redirects
    Redirects,
    /// Store received cookies
    Cookies,
    /// Pretty print response content
    Pretty
}