#![cfg_attr(nightly, feature(never_type))]
#![allow(dead_code)]
macro_rules! flush {
($stream:expr) => {
{
#![allow(unused_imports)]
use std::io::Write;
let _ = $stream.flush();
}
};
() => {
use std::io::Write;
let _ = ::std::io::stdout().flush();
};
(? $stream:expr) => {
{
#[allow(unused_imports)]
use std::io::Write;
$stream.flush()
}
};
(?) => {
use std::io::Write;
::std::io::stdout().flush()
};
}
pub(crate) type DefaultOutputDevice = std::io::Stdout;
pub(crate) const CREATE_DEFAULT_OUTPUT_DEVICE_FUNC: fn () -> DefaultOutputDevice = std::io::stdout;
#[inline]
pub(crate) fn create_default_output_device() -> DefaultOutputDevice
{
CREATE_DEFAULT_OUTPUT_DEVICE_FUNC()
}
#[cfg(feature="size")]
#[inline(always)]
fn terminal_size_of(f: &(impl AsRawFd + ?Sized)) -> Option<(terminal_size::Width, terminal_size::Height)>
{
terminal_size::terminal_size_using_fd(f.as_raw_fd())
}
use atomic_refcell::AtomicRefCell;
use std::os::unix::io::*;
mod util;
mod inter;
pub use inter::*;
pub mod progress;
pub mod wheel;
pub mod spinner;
pub mod silent;
#[cfg(feature="size")]
pub fn has_terminal_output_default() -> bool
{
terminal_size::terminal_size().is_some()
}
#[cfg(feature="size")]
pub fn has_terminal_output(f: &(impl AsRawFd + ?Sized)) -> bool
{
terminal_size::terminal_size_using_fd(f.as_raw_fd()).is_some()
}
pub mod prelude {
pub use super::inter::*;
pub use super::{
spinner::Spin,
progress::Bar,
silent::Silent,
};
}