platform-path 0.1.0

CLI for identifying the platform path
Documentation
use structopt::StructOpt;
use strum::{Display, EnumString, EnumVariantNames, VariantNames};

#[derive(Debug, StructOpt)]
pub(crate) struct FormatOptions {
  #[structopt(short = "o", long = "output-format", env = "OUTPUT_FORMAT", value_name = "format", default_value, possible_values = Format::VARIANTS)]
  pub(crate) format: Format,
}

#[derive(Debug, Display, EnumString, EnumVariantNames)]
#[strum(serialize_all = "kebab-case")]
pub(crate) enum Format {
  Text,
  #[cfg(feature = "json")]
  Json,
  #[cfg(feature = "json")]
  JsonPretty,
  #[cfg(feature = "yaml")]
  Yaml,
}

impl Default for Format {
  fn default() -> Self {
    Self::Text
  }
}