#![forbid(unsafe_code)]
#![deny(
clippy::allow_attributes_without_reason,
clippy::correctness,
unreachable_pub,
)]
#![warn(
clippy::complexity,
clippy::nursery,
clippy::pedantic,
clippy::perf,
clippy::style,
clippy::allow_attributes,
clippy::clone_on_ref_ptr,
clippy::create_dir,
clippy::filetype_is_file,
clippy::format_push_string,
clippy::get_unwrap,
clippy::impl_trait_in_params,
clippy::implicit_clone,
clippy::lossy_float_literal,
clippy::missing_assert_message,
clippy::missing_docs_in_private_items,
clippy::needless_raw_strings,
clippy::panic_in_result_fn,
clippy::pub_without_shorthand,
clippy::rest_pat_in_fully_bound_structs,
clippy::semicolon_inside_block,
clippy::str_to_string,
clippy::todo,
clippy::undocumented_unsafe_blocks,
clippy::unneeded_field_pattern,
clippy::unseparated_literal_suffix,
clippy::unwrap_in_result,
macro_use_extern_crate,
missing_copy_implementations,
missing_docs,
non_ascii_idents,
trivial_casts,
trivial_numeric_casts,
unused_crate_dependencies,
unused_extern_crates,
unused_import_braces,
)]
#[macro_use]
mod macros {
include!(concat!(env!("OUT_DIR"), "/codes.rs"));
#[macro_export(local_inner_macros)]
#[doc(hidden)]
macro_rules! ansi_merge {
(! $last:tt) => ( csi_code!(!$last) );
(! $next:tt, $($tail:tt)+) => (
::std::concat!(csi_code!(!$next), ";", ansi_merge!($($tail)+))
);
($last:tt) => ( csi_code!($last) );
($next:tt, $($tail:tt)+) => (
::std::concat!(csi_code!($next), ";", ansi_merge!($($tail)+))
);
}
#[expect(clippy::doc_markdown, reason = "No.")]
#[macro_export(local_inner_macros)]
#[doc=include_str!(concat!(env!("OUT_DIR"), "/color-table.rs"))]
macro_rules! csi {
($($tail:tt)+) => (
::std::concat!("\x1b[", ansi_merge!($($tail)+), "m")
);
() => ( "\x1b[0m" );
}
#[macro_export(local_inner_macros)]
macro_rules! ansi {
(($($style:tt)+) $($content:expr),+ $(,)?) => (
::std::concat!(
csi!($( $style )+),
$( $content, )+
csi!(),
)
);
}
#[macro_export(local_inner_macros)]
macro_rules! blink {
($($content:expr),+ $(,)?) => (ansi!((blink) $($content),+));
}
#[macro_export(local_inner_macros)]
macro_rules! bold {
($($content:expr),+ $(,)?) => (ansi!((bold) $($content),+));
}
#[macro_export(local_inner_macros)]
macro_rules! dim {
($($content:expr),+ $(,)?) => (ansi!((dim) $($content),+));
}
#[macro_export(local_inner_macros)]
macro_rules! italic {
($($content:expr),+ $(,)?) => (ansi!((italic) $($content),+));
}
#[macro_export(local_inner_macros)]
macro_rules! strike {
($($content:expr),+ $(,)?) => (ansi!((strike) $($content),+));
}
#[macro_export(local_inner_macros)]
macro_rules! underline {
($($content:expr),+ $(,)?) => (ansi!((underline) $($content),+));
}
}