4 个版本
0.2.1 | 2022年10月20日 |
---|---|
0.2.0 | 2022年10月20日 |
0.1.1 | 2022年2月7日 |
0.1.0 | 2022年2月7日 |
#860 在 命令行界面 中
每月 25 次下载
用于 seastar
49KB
435 行
彩虹
功能
iridescent
是一个易于着色终端文本的库。它支持基本的 ANSI 代码、Xterm-256 颜色和 RGB。您可以直接在 &str
和 String
类型上操作,无需担心转换。需要注意的是,并非所有终端都支持所有功能。虽然 大多数 现代终端都会支持真 RGB 颜色,但某些文本模式(如 blink
)可能不可靠。
用法
[dependencies]
iridescent = { version = "0.2" }
唯一的要求是将 Styled
特性导入到您计划使用库方法的模块中。一旦在模块顶部声明,这些方法将对所有 &str
和 String
类型可用。
请注意,所有 Styled
方法都可以链式使用,如上面的示例所示,我们首先调用前景方法,然后调用加粗方法。这些不需要按特定顺序。
使用基本颜色
use iridescent::{constants::GREEN, Styled};
fn main() {
// Here we can use a built-in method called `.green()` to apply the color.
// Every basic color has a helper method for the foreground, as this is
// the most common thing to style.
let s = "Hello".green().bold();
// But we could manually do it this way, too. You'll need to import the
// color codes from the constants file, of course.
let s2 = "world".foreground(GREEN).bold();
println!("{}, {}!", s, s2);
}
使用 256 位 & RGB 颜色
use iridescent::{Styled, Rgb};
fn main() {
// We use .foreground() for a 256-bit color; in this case, 155 - or a lime green.
let s = "Hello".foreground(155).underline();
// Here we combine a 256-bit color with an RGB color. First, we set the foreground
// to an RGB value of (4, 11, 214) - some variant of dark blue. Next, we set
// the background to a value of 195 - a very light, almost white, blue. In
// addition, we apply some modes (underline and blink) to our text.
//
// As you can see, mixing and matching various sequence types is no problem!
let s2 = "world"
.foreground(&[4, 11, 214])
.background(195)
.blink();
println!("{}, {}!", s, s2);
}
十六进制颜色
自 v0.2
版本起,您现在可以使用十六进制颜色字面量了!
use iridescent::{Styled, constants::{RED, WHITE}};
fn main() {
let hello = "Hello".foreground("#ff00ff").bold();
let world = "world".foreground("#00ff00").background("#0000ff");
println!("{hello}, {world}!");
}
有关所有可用方法的详细信息,请参阅 此处。
示例
如果您已克隆了 iridescent
仓库,可以使用命令 cargo run --example <example_name>
运行示例。如果需要,可以使用 --features <feature_name> 添加功能。
示例 | 文件 | 描述 | 功能 |
---|---|---|---|
rainbow | colors.rs | 在终端中展示所有基本颜色。 | |
rgb | rainbow.rs | 在终端中展示 8 位和 24 位深度随机颜色。 | random |
模式 | modes.rs | 展示终端中各种文本模式。 |
功能标志
标志 | 默认 | 描述 | 依赖项 |
---|---|---|---|
random |
禁用 | 启用使用 Color::random() 和 Color::random_rgb() |
rand |
许可证
Iridescent 可以选择以下两种许可证之一进行双授权:
任选其一。