promkit
promkit copied to clipboard
A toolkit for building interactive prompt in Rust
promkit
A toolkit for building your own interactive command-line tools in Rust, utilizing crossterm.
Getting Started
Put the package in your Cargo.toml
.
[dependencies]
version = "0.1.2"
Features
- Applications
- Readline: provide the lines to receive and display user inputs
- Masking
- Switch insert/overwrite modes
- Suggestions
- Select: provide the selectbox to choose the items from
- Move cyclically in the selectbox
- Readline: provide the lines to receive and display user inputs
- Customizations
- Edit key-bindings
- Edit crossterm Event handler
- Define your own command-line applications
- e.g. ynqa/hstr-rs
Examples
Readline:
use promkit::{build::Builder, readline, Result};
fn main() -> Result<()> {
let mut p = readline::Builder::default().build()?;
loop {
let line = p.run()?;
println!("result: {:?}", line);
}
}
Select:
use promkit::{
build::Builder, crossterm::style, register::Register, select, selectbox::SelectBox, Result,
};
fn main() -> Result<()> {
let mut selectbox = Box::new(SelectBox::default());
selectbox.register_all((0..100).map(|v| v.to_string()).collect::<Vec<String>>());
let mut p = select::Builder::default()
.title("Q: What number do you like?")
.title_color(style::Color::DarkGreen)
.selectbox(selectbox)
.build()?;
let line = p.run()?;
println!("result: {:?}", line);
Ok(())
}