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命令行界面

Download history 29940/week @ 2024-04-16 27253/week @ 2024-04-23 28032/week @ 2024-04-30 24640/week @ 2024-05-07 29693/week @ 2024-05-14 29035/week @ 2024-05-21 30157/week @ 2024-05-28 23927/week @ 2024-06-04 25715/week @ 2024-06-11 25628/week @ 2024-06-18 21836/week @ 2024-06-25 20527/week @ 2024-07-02 23610/week @ 2024-07-09 25900/week @ 2024-07-16 29000/week @ 2024-07-23 30230/week @ 2024-07-30

113,399 每月下载量
用于 168 个 Crates(10 直接使用)

WTFPL 许可证

120KB
3K SLoC

terminfo

Crates.io Crates.io WTFPL Build Status

具有类型安全获取器的终端功能。

文档

示例

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