intermodal/src/options.rs

38 lines
1.3 KiB
Rust
Raw Normal View History

2019-05-24 10:25:55 +02:00
use crate::common::*;
#[derive(StructOpt)]
pub(crate) struct Options {
#[structopt(
long = "unstable",
short = "u",
help = "Enable unstable features.",
long_help = "Enable unstable features. To avoid premature stabilization and excessive version \
churn, unstable features are unavailable unless this flag is set. Unstable \
features are not bound by semantic versioning stability guarantees, and may be \
changed or removed at any time."
)]
2019-05-24 10:25:55 +02:00
unstable: bool,
#[structopt(
long = "color",
default_value = use_color::AUTO,
set = ArgSettings::CaseInsensitive,
possible_values = use_color::VALUES,
help = "Print colorful output.",
long_help = "Print colorful output. When `auto`, the default, colored output is only enabled \
if imdl detects that it is connected to a terminal, the `NO_COLOR` environment \
variable is not set, and the `TERM` environment variable is not set with a \
value of `dumb`.",
)]
pub(crate) use_color: UseColor,
}
impl Options {
pub(crate) fn require_unstable(&self, feature: &'static str) -> Result<(), Error> {
if self.unstable {
Ok(())
} else {
Err(Error::Unstable { feature })
}
}
}