fyi_ansi

Crates.iofyi_ansi
lib.rsfyi_ansi
version2.2.1
created_at2025-04-09 01:39:09.747449+00
updated_at2025-06-26 20:49:51.62575+00
descriptionCompile-time ANSI formatting macros for FYI.
homepage
repositoryhttps://github.com/Blobfolio/fyi
max_upload_size
id1626183
size30,022
Josh (joshstoik1)

documentation

README

FYI ANSI

docs.rs
crates.io ci deps.rs
license

This crate exports two simple compile-time ANSI formatting macros — csi and ansi — as well as shortcut helpers for blink, bold, dim, italic, strike, and underline.

Examples

use fyi_ansi::{ansi, csi};

// The `csi` macro generates (only) the ANSI formatting sequence.
assert_eq!(csi!(bold, underline), "\x1b[1;4m");

// The `ansi` macro generates formatted content strings.
assert_eq!(
    concat!(ansi!((bold, light_red) "Error:"), " Oh no!"),
    "\x1b[1;91mError:\x1b[0m Oh no!",
);

The bold, dim, etc., macros are only shortcuts, but can help declutter your code when there's only the one style being toggled.

use fyi_ansi::{blink, bold, dim, italic, strike, underline};

// Same as with `ansi`, they terminate with a blanket reset by default.
assert_eq!(bold!("I'm bold!"),            "\x1b[1mI'm bold!\x1b[0m");
assert_eq!(dim!("I'm dim!"),              "\x1b[2mI'm dim!\x1b[0m");
assert_eq!(italic!("I'm italic!"),        "\x1b[3mI'm italic!\x1b[0m");
assert_eq!(underline!("I'm underlined!"), "\x1b[4mI'm underlined!\x1b[0m");
assert_eq!(blink!("I'm annoying!"),       "\x1b[5mI'm annoying!\x1b[0m");
assert_eq!(strike!("I'm struck!"),        "\x1b[9mI'm struck!\x1b[0m");
Commit count: 1721

cargo fmt