7个版本
使用旧的Rust 2015
0.2.1 | 2018年6月11日 |
---|---|
0.2.0 | 2018年4月25日 |
0.1.4 | 2017年12月5日 |
0.1.1 | 2017年7月6日 |
0.1.0 | 2017年6月30日 |
#380 在 命令行界面
728 每月下载量
在 3 个crate 中使用
14KB
223 行
term_cursor
一个用于操作终端光标位置的纯Rust crate!还允许清除屏幕!
用法
extern crate term_cursor as cursor;
fn main() {
// Clear the screen. Does not reset the cursor position!
print!("{}", cursor::Clear);
// Position the cursor at column 5 and row 10 and print "Hello world!".
print!("{}Hello world!", cursor::Goto(5, 10));
// Go up a line. Does not reset the column of the cursor!
print!("{}I'm above", cursor::Up(1));
// Let's do the same thing again, with the second API.
cursor::clear().expect("Clear failed");
cursor::set_pos(5, 10).expect("Setting the cursor position failed");
print!("Hello world!");
let (x, _y) = cursor::get_pos().expect("Getting the cursor position failed");
cursor::set_pos(x, 9).expect("Set failed again");
print!("I'm above");
// To finish off the example, move the cursor down 2 lines.
// That's where the command prompt will return once the program finishes.
// We don't the command prompt to overprint our stuff!
print!("{}", cursor::Goto(0, 12));
}
注意事项
term_cursor的二维坐标系范围:x in 0..WIDTH
和 y in 0..HEIGHT
,其中 WIDTH
和 HEIGHT
是终端缓冲区的字符尺寸。
将光标定位在范围外并打印文本是 未定义行为! 您的文本可能会换行,负索引可能被转换为正索引,或者您的程序可能崩溃。这完全取决于平台。
您有责任确保所有绘图都在范围内。为了获取终端的尺寸,我建议使用crate term_size
。
依赖关系
~74–290KB