25 个版本
0.9.0 | 2024 年 5 月 8 日 |
---|---|
0.8.0 | 2023 年 3 月 24 日 |
0.7.5 | 2023 年 1 月 15 日 |
0.7.3 | 2020 年 5 月 21 日 |
0.1.2 | 2016 年 12 月 26 日 |
#63 在 命令行界面
113,399 每月下载量
用于 168 个 Crates(10 直接使用)
120KB
3K SLoC
terminfo
具有类型安全获取器的终端功能。
示例
use std::io;
use terminfo::{capability as cap, Database};
fn main() {
let info = Database::from_env().unwrap();
if let Some(cap::MaxColors(n)) = info.get::<cap::MaxColors>() {
println!("The terminal supports {} colors.", n);
} else {
println!("The terminal does not support colors, what year is this?");
}
if let Some(flash) = info.get::<cap::FlashScreen>() {
flash.expand().to(io::stdout()).unwrap();
} else {
println!("FLASH GORDON!");
}
info.get::<cap::SetAForeground>().unwrap().expand().color(2).to(io::stdout()).unwrap();
info.get::<cap::SetABackground>().unwrap().expand().color(4).to(io::stdout()).unwrap();
println!("SUP");
info.get::<cap::ExitAttributeMode>().unwrap().expand().to(io::stdout()).unwrap();
}
打包和分发
对于除 Windows 控制台之外的所有终端,此库需要存在一个非哈希的(目前如此)terminfo 数据库。例如,在 Debian 衍生版中,您应该依赖于 ncurses-term;在 Arch Linux 中,您依赖于 ncurses;在 MinGW 中,您应该依赖于 mingw32-terminfo。
不幸的是,如果您在 Windows 上使用非 Windows 控制台(例如 MinGW、Cygwin、Git Bash),您需要设置 TERMINFO 环境变量以指向包含 terminfo 数据库的目录。
依赖关系
~1MB
~22K SLoC