faho / rust-terminfo

Terminal information for Rust.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

terminfo

Crates.io Crates.io WTFPL Build Status

Terminal capabilities with type-safe getters.

Documentation

Example

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();
}

Packaging and Distributing

For all terminals but windows consoles, this library depends on a non-hashed (for now) terminfo database being present. For example, on Debian derivitives, you should depend on ncurses-term; on Arch Linux, you depend on ncurses; and on MinGW, you should depend on mingw32-terminfo.

Unfortunately, if you're using a non-windows console on Windows (e.g. MinGW, Cygwin, Git Bash), you'll need to set the TERMINFO environment variable to point to the directory containing the terminfo database.

About

Terminal information for Rust.

License:Other


Languages

Language:Rust 100.0%