#![no_std]
#![allow(uncommon_codepoints)]
#![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(doc)]
extern crate self as stylish;
#[cfg(feature = "alloc")]
extern crate alloc;
#[cfg(feature = "std")]
extern crate std;
#[cfg(feature = "std")]
pub mod io;
#[macro_use]
mod std_compat;
mod arguments;
mod display;
#[cfg(feature = "alloc")]
mod format;
mod formatter;
#[cfg(feature = "alloc")]
mod string;
#[cfg(all(feature = "alloc", feature = "macros"))]
mod to_string;
mod write;
pub use core::fmt::{Error, Result};
pub use stylish_style::{Background, Color, Foreground, Intensity, Restyle, Style, StyleDiff};
#[cfg(all(feature = "alloc", feature = "macros"))]
pub use self::to_string::ToStylishString;
pub use self::{arguments::Arguments, display::Display, formatter::Formatter, write::Write};
#[cfg(feature = "alloc")]
pub use self::{format::format, string::String};
#[cfg(feature = "macros")]
#[doc(hidden)]
pub mod 𓀄 {
pub use core::{fmt, option::Option};
pub use stylish_macros::{format_args, format_args_nl};
pub use with_builtin_macros::with_builtin;
pub use crate::{
arguments::{Argument, Arguments, FormatTrait, StdFmt},
formatter::{Align, DebugHex, FormatterArgs, Sign},
Background, Color, Display, Foreground, Intensity, StyleDiff,
};
}
#[cfg(feature = "macros")]
#[macro_export]
macro_rules! format_args {
($fmt:literal $(, $($arg:tt)*)?) => {
$crate::_format_args!($fmt $(, $($arg)*)?)
};
($fmt:expr $(, $($arg:tt)*)?) => {
$crate::_format_args!($fmt $(, $($arg)*)?)
};
}
#[cfg(feature = "macros")]
#[cfg(not(stylish_proc_macro_expand))]
#[doc(hidden)]
#[macro_export]
macro_rules! _format_args {
($fmt:literal $(, $($arg:tt)*)?) => {
$crate::𓀄::format_args!(crate=$crate, $fmt $(, $($arg)*)?)
};
($fmt:expr $(, $($arg:tt)*)?) => {
$crate::𓀄::with_builtin!(let $fmt_lit = $fmt in {
$crate::𓀄::format_args!(crate=$crate, $fmt_lit $(, $($arg)*)?)
})
};
}
#[cfg(feature = "macros")]
#[cfg(stylish_proc_macro_expand)]
#[doc(hidden)]
#[macro_export]
macro_rules! _format_args {
($fmt:expr $(, $($arg:tt)*)?) => {
$crate::𓀄::format_args!(crate=$crate, $fmt $(, $($arg)*)?)
};
}