Crates.io | interm |
lib.rs | interm |
version | 0.1.1 |
source | src |
created_at | 2023-10-04 00:17:32.981388 |
updated_at | 2023-10-04 00:23:27.583922 |
description | InTerm is a library for creating interactive terminal applications. |
homepage | https://github.com/dpouris/interm |
repository | https://github.com/dpouris/interm |
max_upload_size | |
id | 991681 |
size | 30,930 |
InTerm is a Rust library designed to facilitate the creation of interactive terminal applications. It provides a simple and flexible way to create and manage interactive elements within the terminal, allowing for interactive and dynamic user interfaces.
⚠️ Disclaimer: This project is still very much a work in progress, and contributions from the community are highly encouraged and appreciated! If you're interested in contributing, please read our contribution guidelines :)
InteractiveElement
instances.Block
structure to manage individual lines.To use InTerm in your Rust project, follow these steps:
Add the interm
dependency to your Cargo.toml
:
[dependencies]
interm = "0.1.0"
Import the necessary modules into your Rust code:
use interm::{Block, interactive::Line as InteractiveLine};
Create a Block
and interact with interactive elements:
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();
Check the examples directory for more usage examples.
We welcome contributions from the community! If you find a bug or have an idea for an improvement, please read the contribution guidelines and open an issue or create a pull request.
This project is licensed under the MIT License.