#![no_std]
#![doc = include_str!("../README.md")]
#![warn(missing_copy_implementations)]
#![warn(missing_debug_implementations)]
#![warn(missing_docs)]
#![warn(trivial_casts)]
#![warn(trivial_numeric_casts)]
#![warn(unused_extern_crates)]
#![warn(unused_import_braces)]
#![warn(variant_size_differences)]
#![doc(test(attr(deny(warnings))))]
#![cfg_attr(docsrs, feature(doc_cfg, doc_auto_cfg))]
#[cfg(feature = "std")]
extern crate std;
#[cfg(all(doc, feature = "alloc"))]
extern crate alloc;
#[cfg(doc)]
extern crate self as stylish;
#[cfg(all(doc, not(feature = "std")))]
use core::fmt as doc_fmt;
#[cfg(all(doc, feature = "std"))]
use std::fmt as doc_fmt;
#[cfg(all(feature = "alloc", feature = "macros"))]
pub use stylish_core::ToStylishString;
#[cfg(feature = "alloc")]
pub use stylish_core::{format, String};
#[cfg(feature = "macros")]
pub use stylish_core::{format_args, write, writeln};
pub use stylish_core::{
Arguments, Background, Color, Display, Error, Foreground, Formatter, Intensity, Restyle,
Result, Style, StyleDiff, Write,
};
#[cfg(feature = "std")]
pub mod io {
#[cfg(feature = "ansi")]
pub use stylish_ansi::io::Ansi;
pub use stylish_core::io::{Error, ErrorKind, Result, Write};
#[cfg(feature = "ansi")]
pub fn ansi<T: std::io::Write>(inner: T) -> Ansi<T> {
Ansi::new(inner)
}
#[cfg(feature = "plain")]
pub use stylish_plain::io::Plain;
#[cfg(feature = "plain")]
pub fn plain<T: std::io::Write>(inner: T) -> Plain<T> {
Plain::new(inner)
}
}
#[cfg(feature = "ansi")]
pub fn ansi<T: core::fmt::Write>(inner: T) -> Ansi<T> {
Ansi::new(inner)
}
#[cfg(feature = "html")]
pub fn html<T: core::fmt::Write>(inner: T) -> Html<T> {
Html::new(inner)
}
#[cfg(feature = "plain")]
pub fn plain<T: core::fmt::Write>(inner: T) -> Plain<T> {
Plain::new(inner)
}
#[cfg(feature = "ansi")]
pub use stylish_ansi::Ansi;
#[cfg(all(feature = "ansi", feature = "alloc", feature = "macros"))]
pub use stylish_ansi::ToAnsiString;
#[cfg(feature = "ansi")]
pub mod ansi {
#[cfg(feature = "alloc")]
pub use stylish_ansi::format;
}
#[cfg(feature = "html")]
pub use stylish_html::Html;
#[cfg(all(feature = "html", feature = "alloc", feature = "macros"))]
pub use stylish_html::ToHtmlString;
#[cfg(feature = "html")]
pub mod html {
#[cfg(feature = "alloc")]
pub use stylish_html::format;
}
#[cfg(feature = "plain")]
pub use stylish_plain::Plain;
#[cfg(all(feature = "plain", feature = "alloc", feature = "macros"))]
pub use stylish_plain::ToPlainString;
#[cfg(feature = "plain")]
pub mod plain {
#[cfg(feature = "alloc")]
pub use stylish_plain::format;
}