Crate comat

Source
Expand description

smart crate for terminal coloring.

uses macros instead of methods.

§usage

heres how it works:

cprintln!("the traffic light is {bold_red}red.{reset}");
cprintln!("the traffic light will be {green}green{reset} at {:?}.", Instant::now() + Duration::from_secs(40));

§why you should use comat instead of {yansi, owo_colors, colored, ..}

  • no method pollution, your intellisense remains fine
  • compact: shorter than even raw ansi. see:
    cprint!("{thing:red}.");
    vs
    print!("\x1b[0;34;31m{thing}\x1b[0m.");
    vs
    print!("{}.", thing.red());
  • intuitive: you dont have to
    println!("{} {} {}", thing1.red().on_blue(), thing2.red().on_blue(), thing3.italic().yellow());
    instead, simply
    cprintln!("{red}{on_blue}{thing1} {thing2} {thing3:italic,yellow}");

§syntax

{{ gives you a {, to get a {{ use {{{{.

{color} adds that effect/color to the string. it does not reset afterwards.

if the color inside a {} is not found, it doesnt touch the block, for convenience.

{thing:color} will reset everything before the block, color it, and reset that color. similar to thing.color() with other libs. it can also contain more than one color: {thing:yelow,italic,on_red}

§colors

black red green yellow blue magenta cyan white default bold_black bold_red bold_green bold_yellow bold_blue bold_magenta bold_cyan bold_white bold_default on_black_bold on_red_bold on_green_bold on_yellow_bold on_blue_bold on_magenta_bold on_cyan_bold on_white_bold on_default_bold on_black on_red on_green on_yellow on_blue on_magenta on_cyan on_white on_default reset dim italic underline blinking hide strike bold

Macros§

cformat
Format text, colorfully.
cformat_args
Produce fmt::Arguments. Sometimes functions take these.
comat
Macro that simply modifies the format string to have colors. Mostly for testing. Use cformat_args! instead where possible.
cpanic
Colorfully panic.
cprint
Print text, colorfully, to stdout, without a newline.
cprintln
Print text, colorfully, to stdout, with a newline.
cwrite
Write to a buffer colorfully, with no newline.
cwriteln
Write to a buffer colorfully, with newline.