Skip to main content

resolve

Function resolve 

Source
pub fn resolve(config_theme: &str, minimal: bool) -> Theme
Expand description

Resolve the active theme from config, CLI, and environment.

Priority order:

  1. minimal=true → always Monochrome
  2. NO_COLOR env var setMonochrome
  3. Valid config_theme → the matching Theme
  4. Invalid config_themeDark (default)

§Example

use netspeed_cli::theme::{Theme, resolve};

// minimal=true always forces Monochrome (deterministic)
assert_eq!(resolve("dark", true), Theme::Monochrome);
assert_eq!(resolve("light", true), Theme::Monochrome);
assert_eq!(resolve("high-contrast", true), Theme::Monochrome);
// These depend on NO_COLOR not being set in the environment:
assert_eq!(resolve("dark", false), Theme::Dark);
assert_eq!(resolve("light", false), Theme::Light);
assert_eq!(resolve("high-contrast", false), Theme::HighContrast);
assert_eq!(resolve("monochrome", false), Theme::Monochrome);

// Invalid theme falls back to Dark (the default)
assert_eq!(resolve("invalid", false), Theme::Dark);