使用 Display 实现仅将颜色打印到终端

问题描述 投票:0回答:1

我目前正在使用 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
进入终端)。有什么办法可以让颜色只在终端中起作用,而不需要复制任何代码来分别解释终端和输出?

rust terminal
1个回答
0
投票

好像

colored
板条箱有这个功能,应该早点检查一下。

https://docs.rs/colored/2.1.0/colored/control/fn.set_override.html

© www.soinside.com 2019 - 2024. All rights reserved.