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.
- Block Structure: Represents a block of interactive elements or indexed lines in the terminal, consisting of a vector of
InteractiveElement
instances. - InteractiveLine: Represents a line that can be updated in the terminal. It is used within the
Block
structure to manage individual lines. - Cursor Management: Provides functions to control the cursor position and visibility within the terminal.
- Line Clearing: Allows for clearing a specific line or all interactive element lines in the terminal.
To use InTerm in your Rust project, follow these steps:
-
Add the
interm
dependency to yourCargo.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.