1 个不稳定版本
使用旧的Rust 2015
0.0.1 | 2022年6月21日 |
---|
#905 in #gui
23KB
507 行代码(不包括注释)
Rustbox2
Rustbox2是termbox2的Rust实现。
目前,这只是一个nsf的C库的包装,但我的计划是将它转换为纯Rust实现,并移除对C库的依赖。
此实现的原始灵感来自Aaron Pribadi,所以对于他的原始工作给予极大的敬意。
注意 这还在开发中,API可能会随着我对Rust的更多了解以及语言本身的变更而更改
用法
在你的 Cargo.toml
中添加以下内容
[dependencies.rustbox]
git = "https://github.com/yymirror/rustbox2.git"
然后,在你的 src/example.rs
中
#![feature(core)]
extern crate rustbox2;
use std::error::Error;
use std::default::Default;
use rustbox2::{Color, RustBox};
use rustbox2::Key;
fn main() {
let rustbox = match RustBox::init(Default::default()) {
Result::Ok(v) => v,
Result::Err(e) => panic!("{}", e),
};
rustbox.print(1, 1, rustbox::RB_BOLD, Color::White, Color::Black, "Hello, world!");
rustbox.print(1, 3, rustbox::RB_BOLD, Color::White, Color::Black,
"Press 'q' to quit.");
rustbox.present();
loop {
match rustbox.poll_event(false) {
Ok(rustbox::Event::KeyEvent(key)) => {
match key {
Key::Char('q') => { break; }
_ => { }
}
},
Err(e) => panic!("{}", e.description()),
_ => { }
}
}
}
注意: 此示例也可以使用 cargo run --example hello-world
运行。
依赖项
~2–10MB
~110K SLoC