Asky

Ansi + ask + yes = Asky

Good looking prompts for the terminal.

Usage

First of all, this is a crate, so you need to add this to your project

bash cargo add asky

Then, you can see the crate documentation here: TODO

Demos

Confirm

Confirm prompt gif demo

Code:

```rust use asky::Confirm;

fn main() -> std::io::Result<()> { if Confirm::new("Do you like coffe?").prompt()? { println!("Great, me too!"); }

// ...

Ok(())

}

```

Toggle

Toggle prompt gif demo

Code:

```rust use asky::Toggle;

fn main() -> std::io::Result<()> { let tabs = Toggle::new("Which is better?", ["Tabs", "Spaces"]).prompt()?; println!("Great choice");

// ...

Ok(())

} ```

Text

Text prompt gif demo

Code:

```rust 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

Number prompt gif demo

Code:

```rust use asky::Number;

fn main() -> std::io::Result<()> { let age: = Number::::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

Password prompt gif demo

Code:

```rust 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

Select prompt gif demo

Code:

```rust use asky::Select;

fn main() -> std::io::Result<()> { let choice = Select::new("Choose number", 1..=30).prompt()?; println!("{choice}, Interesting choice");

// ...

Ok(())

}

```

MultiSelect

Multi select prompt gif demo

Code:

```rust 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:

Alternatives:


License: MIT