#![warn(clippy::print_stderr)]
#![warn(clippy::print_stdout)]
pub trait IsTerminal: sealed::Sealed {
fn is_terminal(&self) -> bool;
}
mod sealed {
pub trait Sealed {}
}
macro_rules! impl_is_terminal {
($($t:ty),*$(,)?) => {$(
impl sealed::Sealed for $t {}
impl IsTerminal for $t {
#[inline]
fn is_terminal(&self) -> bool {
is_terminal::IsTerminal::is_terminal(self)
}
}
)*}
}
impl_is_terminal!(
std::fs::File,
std::io::Stdin,
std::io::StdinLock<'_>,
std::io::Stdout,
std::io::StdoutLock<'_>,
std::io::Stderr,
std::io::StderrLock<'_>
);