ttyaskpass 2.0.1

a safely passphrase prompt library.
Documentation
use std::process;
use std::env::args;
use std::borrow::Cow;
use std::io::{ self, Write };
use ttyaskpass::AskPass;


#[inline]
fn start(prompt: &str) -> io::Result<()> {
    let mut stdout = io::stdout();
    let mut askpass = AskPass::new(vec![0; 256].into_boxed_slice());
    let pass = askpass.askpass(prompt)?;
    stdout.write_all(pass)?;
    stdout.flush()
}

fn main() {
    let prompt = args().nth(1)
        .map(Cow::from)
        .unwrap_or(Cow::from("Password:"));
    match start(&prompt) {
        Ok(()) => (),
        Err(ref err) if err.kind() == io::ErrorKind::Interrupted => process::exit(1),
        err => err.unwrap()
    }
}