#rustyline #input #cli-input #cli #prompt #string #filter

simple_prompts

A simple wrapper for Rustyline which provides 2 easy to use CLI prompts

4 releases

0.1.3 May 16, 2020
0.1.2 May 1, 2020
0.1.1 May 1, 2020
0.1.0 May 1, 2020

#13 in #rustyline

MIT license

6KB

Simple Prompts

GitHub Workflow Status Crates.io Crates.io

This is a very basic wrapper around the Rustyline crate that provides just 3 simple and easy to use functions. The function prompt(&str), takes a string as a parameter to display as an input prompt and returns the keyboard input (sans the newline). The function edit_prompt(&str, &str) takes 2 parameters: the first, is just the prompt string, the second is an existing value you want to edit (be it a default or some other value) and returns any input. The function filter_prompt works exactly like prompt but filters HTML control characters as HTML entities (note: this does not protect the string from XSS which can account for the entity encoding).

That's it.

If you need more flexibility or features, just drop back to Rustyline. This library was just designed to save ~50 lines of code and make my source code cleaner on other projects.

Example

Cargo.toml

[dependencies]
simple_prompts = "0.1.2"

main.rs

use simple_prompts::{prompt, edit_prompt, filter_prompt};

fn main() {
    let mut our_input: String = prompt("Enter some text: ");
    println!("You entered: {}", our_input);

    our_input = filter_prompt("Now try entering some text to filter like \"  or < ");

    our_input = edit_prompt("You entered was filtered to this, change it: ", &our_input);
    println!("Final value is: {}", our_input)
}

Dependencies

~6.5MB
~131K SLoC