asking 0.0.2

Build async prompts.
Documentation
//! Give only 10 seconds to answer!
//!
//! This examples shows how to use:
//! - `timeout`
//! - Error handling

use asking::error::Processing;
use std::time::Duration;

fn main() {
    let result = async_std::task::block_on(
        asking::yn()
            .message("Shall I continue? (you have 10 seconds to answer) ")
            .feedback(|b| {
                if *b {
                    "Great!\n".to_string()
                } else {
                    "Too bad\n".to_string()
                }
            })
            .help("You can do it!\n")
            .required()
            .timeout(Duration::from_secs(10_u64))
            .ask(),
    );

    match result {
        Ok(true) => println!("Super!"),
        Ok(false) => println!("Okay, shutting down..."),
        Err(Processing::Timeout { .. }) => {
            println!("\nI think you are not here, I will continue :)")
        }
        Err(Processing::Io { .. }) => eprintln!("\nFailed to read line."),
        _ => unreachable!(),
    }
}