#用户界面 #终端 #命令行界面 #TUI #终端图形 #CLI #用户界面

interm

InTerm 是一个用于创建交互式终端应用程序的库

2 个版本

0.1.1 2023 年 10 月 4 日
0.1.0 2023 年 10 月 4 日

#1287开发工具

MIT 许可协议

22KB
180 代码行

InTerm:Rust 的交互式终端库

MIT licensed crates.io Documentation

InTerm 是一个为 Rust 设计的库,旨在简化交互式终端应用程序的创建。它提供了一种简单灵活的方式,用于在终端中创建和管理交互式元素,从而实现交互式和动态的用户界面。


⚠️ 免责声明:该项目仍在积极开发中,我们非常欢迎并感谢社区的贡献!如果您有兴趣做出贡献,请阅读我们的 贡献指南 :)


目录

功能

  • 块结构:表示终端中的交互式元素块或索引行,由 InteractiveElement 实例组成的向量。
  • 交互行:表示可以更新终端中的行。它用于 Block 结构中,用于管理单个行。
  • 光标管理:提供控制终端中光标位置和可见性的函数。
  • 清除行:允许清除特定的行或终端中的所有交互式元素行。

用法

要在您的 Rust 项目中使用 InTerm,请按照以下步骤操作

  1. interm 依赖项添加到您的 Cargo.toml

    [dependencies]
    interm = "0.1.0"
    
  2. 将必要的模块导入到您的 Rust 代码中

    use interm::{Block, interactive::Line as InteractiveLine};
    
  3. 创建一个 Block 并与交互式元素交互

    let mut elements: Vec<InteractiveLine> = Vec::with_capacity(10);
    for idx in 0..10 {
        elements.push(InteractiveLine::new(format!("Download {}", idx).as_str()));
    }
    
    let block = Block::new(elements).unwrap();
    
    // Update an element
    let elem = &block.interactive_lines[0];
    block.update_element(elem, "Download 0: Complete", true).unwrap();
    
    // Go to an element
    block.goto_idx(0).unwrap();
    
    // Clear a line
    block.clear_line().unwrap();
    
    // Clear all lines
    block.clear_lines().unwrap();
    

示例

查看 示例 目录以获取更多用法示例。

Example

贡献

我们欢迎社区的贡献!如果您发现了一个错误或有改进的想法,请阅读 贡献指南 并提交一个 issue 或创建一个 pull request。

许可协议

本项目采用 MIT 许可协议 许可。

依赖项

~2.5–4MB
~68K SLoC