summaryrefslogtreecommitdiffstats
path: root/vendor/clap/src/output/fmt.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/clap/src/output/fmt.rs')
-rw-r--r--vendor/clap/src/output/fmt.rs158
1 files changed, 0 insertions, 158 deletions
diff --git a/vendor/clap/src/output/fmt.rs b/vendor/clap/src/output/fmt.rs
deleted file mode 100644
index dc1f46e08..000000000
--- a/vendor/clap/src/output/fmt.rs
+++ /dev/null
@@ -1,158 +0,0 @@
-use crate::util::color::ColorChoice;
-
-use std::{
- fmt::{self, Display, Formatter},
- io::{self, Write},
-};
-
-#[derive(Copy, Clone, Debug, PartialEq, Eq)]
-pub(crate) enum Stream {
- Stdout,
- Stderr,
-}
-
-#[derive(Clone, Debug)]
-pub(crate) struct Colorizer {
- stream: Stream,
- #[allow(unused)]
- color_when: ColorChoice,
- pieces: Vec<(String, Style)>,
-}
-
-impl Colorizer {
- #[inline(never)]
- pub(crate) fn new(stream: Stream, color_when: ColorChoice) -> Self {
- Colorizer {
- stream,
- color_when,
- pieces: vec![],
- }
- }
-
- #[inline(never)]
- pub(crate) fn good(&mut self, msg: impl Into<String>) {
- self.pieces.push((msg.into(), Style::Good));
- }
-
- #[inline(never)]
- pub(crate) fn warning(&mut self, msg: impl Into<String>) {
- self.pieces.push((msg.into(), Style::Warning));
- }
-
- #[inline(never)]
- pub(crate) fn error(&mut self, msg: impl Into<String>) {
- self.pieces.push((msg.into(), Style::Error));
- }
-
- #[inline(never)]
- #[allow(dead_code)]
- pub(crate) fn hint(&mut self, msg: impl Into<String>) {
- self.pieces.push((msg.into(), Style::Hint));
- }
-
- #[inline(never)]
- pub(crate) fn none(&mut self, msg: impl Into<String>) {
- self.pieces.push((msg.into(), Style::Default));
- }
-}
-
-/// Printing methods.
-impl Colorizer {
- #[cfg(feature = "color")]
- pub(crate) fn print(&self) -> io::Result<()> {
- use termcolor::{BufferWriter, ColorChoice as DepColorChoice, ColorSpec, WriteColor};
-
- let color_when = match self.color_when {
- ColorChoice::Always => DepColorChoice::Always,
- ColorChoice::Auto if is_a_tty(self.stream) => DepColorChoice::Auto,
- _ => DepColorChoice::Never,
- };
-
- let writer = match self.stream {
- Stream::Stderr => BufferWriter::stderr(color_when),
- Stream::Stdout => BufferWriter::stdout(color_when),
- };
-
- let mut buffer = writer.buffer();
-
- for piece in &self.pieces {
- let mut color = ColorSpec::new();
- match piece.1 {
- Style::Good => {
- color.set_fg(Some(termcolor::Color::Green));
- }
- Style::Warning => {
- color.set_fg(Some(termcolor::Color::Yellow));
- }
- Style::Error => {
- color.set_fg(Some(termcolor::Color::Red));
- color.set_bold(true);
- }
- Style::Hint => {
- color.set_dimmed(true);
- }
- Style::Default => {}
- }
-
- buffer.set_color(&color)?;
- buffer.write_all(piece.0.as_bytes())?;
- buffer.reset()?;
- }
-
- writer.print(&buffer)
- }
-
- #[cfg(not(feature = "color"))]
- pub(crate) fn print(&self) -> io::Result<()> {
- // [e]println can't be used here because it panics
- // if something went wrong. We don't want that.
- match self.stream {
- Stream::Stdout => {
- let stdout = std::io::stdout();
- let mut stdout = stdout.lock();
- write!(stdout, "{}", self)
- }
- Stream::Stderr => {
- let stderr = std::io::stderr();
- let mut stderr = stderr.lock();
- write!(stderr, "{}", self)
- }
- }
- }
-}
-
-/// Color-unaware printing. Never uses coloring.
-impl Display for Colorizer {
- fn fmt(&self, f: &mut Formatter) -> fmt::Result {
- for piece in &self.pieces {
- Display::fmt(&piece.0, f)?;
- }
-
- Ok(())
- }
-}
-
-#[derive(Copy, Clone, Debug, PartialEq, Eq)]
-pub enum Style {
- Good,
- Warning,
- Error,
- Hint,
- Default,
-}
-
-impl Default for Style {
- fn default() -> Self {
- Self::Default
- }
-}
-
-#[cfg(feature = "color")]
-fn is_a_tty(stream: Stream) -> bool {
- let stream = match stream {
- Stream::Stdout => atty::Stream::Stdout,
- Stream::Stderr => atty::Stream::Stderr,
- };
-
- atty::is(stream)
-}