Expand description
§Colored Next (CNXT)
An enhanced fork of colored offering superior performance and terminal handling.
Why CNXT?
- Optimized Performance: Utilizes
Cow
for intelligent memory management (Inspired by this PR) - Modern Codebase: Removed legacy code and streamlined implementation
- Advanced Terminal Support: Sophisticated terminal capability detection with automatic color downgrading
§Usage
Coloring your terminal made simple. You already know how to do it.
§Essential Configuration
-
For Windows targets, add this to enable colors in Windows CMD:
#[cfg(windows)] cnxt::control::set_virtual_terminal(true);
Comparison showing how Windows CMD displays colors before and after enabling virtual terminal.
-
CNXT dynamically detects terminal color support across three tiers:
Ansi16
(16 colors)Ansi256
(256 colors)TrueColor
When using colors beyond your terminal’s capabilities, CNXT automatically downgrades them to the maximum supported level.
Manual control options:
use cnxt::control::{set_should_colorize, ShouldColorize}; // Environment-based detection level (default) set_should_colorize(ShouldColorize::from_env()); // Explicit configuration set_should_colorize(ShouldColorize::YesWithTrueColor); // Force truecolor set_should_colorize(ShouldColorize::YesWithAnsi256); // Force 256-color set_should_colorize(ShouldColorize::No); // Disable colors set_should_colorize(ShouldColorize::Yes); // Enable colors with auto-detect level // Manual color fallback use cnxt::Color; let truecolor = Color::TrueColor { r: 166, g: 227, b: 161 }; let ansi16 = truecolor.fallback_to_ansi16(); let ansi256 = truecolor.fallback_to_ansi256();
§Features
-
terminal-detection (Enabled by default):
Automatically detects terminal color support and downgrades colors accordingly.
Defaultly use TrueColor if disable this feature.
-
conditional-coloring : Provide helper functions to colorize strings based on conditions.
use cnxt::Colorize as _; println!("{}", "red".red_if(true)); // print red color println!("{}", "red".red_if(false)); // print no color println!("{}", "green".green().red_if(false)); // print green color
Re-exports§
pub use self::customcolors::CustomColor;
Modules§
- control
- A couple of functions to set whether to colorize.
- customcolors
- Custom colors support.
Structs§
- Colored
String - A string that may have color and/or style applied to it.
- Style
- A combinatorial style representation for text formatting (bold, italic, etc.)
Enums§
- Color
- The 16 standard colors, Ansi256 and TrueColor.
- Styles
- Individual style flags that can be applied to text.
Traits§
- Colorize
- The trait that enables something to be given color.