2 releases
0.1.1 | Apr 5, 2023 |
---|---|
0.1.0 | Apr 5, 2023 |
#695 in Command-line interface
24 downloads per month
Used in 2 crates
315KB
2K
SLoC
Asky
Ansi + ask + yes = Asky
Good looking prompts for the terminal.
Usage
First of all, this is a library, so you need to add this to your project
cargo add asky
Then, you can see the documentation.
Demos
Confirm
Code:
use asky::Confirm;
fn main() -> std::io::Result<()> {
if Confirm::new("Do you like coffe?").prompt()? {
println!("Great, me too!");
}
// ...
Ok(())
}
Toggle
Code:
use asky::Toggle;
fn main() -> std::io::Result<()> {
let tabs = Toggle::new("Which is better?", ["Tabs", "Spaces"]).prompt()?;
println!("Great choice");
// ...
Ok(())
}
Text
Code:
use asky::Text;
fn main() -> std::io::Result<()> {
let color = Text::new("What's your favorite color?").prompt()?;
println!("{color} is a beautiful color");
// ...
Ok(())
}
Number
Code:
use asky::Number;
fn main() -> std::io::Result<()> {
let age: = Number::<u8>::new("How old are you?").prompt()?;
if let Ok(age) = Number::<u8>::new("How old are you?").prompt()? {
if age <= 60 {
println!("Pretty young");
}
}
// ...
Ok(())
}
Password
Code:
use asky::Password;
fn main() -> std::io::Result<()> {
let password = Password::new("What's your IG password?").prompt()?;
if password.len() >= 1 {
println!("Ultra secure!");
}
// ...
Ok(())
}
Select
Code:
use asky::Select;
fn main() -> std::io::Result<()> {
let choice = Select::new("Choose number", 1..=30).prompt()?;
println!("{choice}, Interesting choice");
// ...
Ok(())
}
MultiSelect
Code:
use asky::MultiSelect;
fn main() -> std::io::Result<()> {
let opts = ["Dog", "Cat", "Fish", "Bird", "Other"];
let choices = MultiSelect::new("What kind of pets do you have?", opts).prompt()?;
if choices.len() > 2 {
println!("So you love pets");
}
// ...
Ok(())
}
Mentions
Inspired by:
- Prompts - Lightweight, beautiful and user-friendly interactive prompts
- Astro - All-in-one web framework with a beautiful command line tool
- Gum - A tool for glamorous shell scripts
Alternatives:
- Dialoguer - A command line prompting library.
- Inquire - A library for building interactive prompts on terminals.
- Requestty - An easy-to-use collection of interactive cli prompts.
License: MIT
Dependencies
~2–12MB
~75K SLoC