我目前正在使用 colored 板条箱为我的
Display
实现添加颜色,如下所示:
impl Display for HSEnum {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(
f,
"{}: {}",
self.name.yellow(),
self.value.to_string().bright_blue()
)
}
}
这对于打印到控制台来说效果很好,但是我计划还添加将此输出保存到文件的支持,这会导致 ANSI 颜色代码出现在文件内,由于颜色处理不正确,这看起来是错误的(除非
cat
进入终端)。有什么办法可以让颜色只在终端中起作用,而不需要复制任何代码来分别解释终端和输出?