linefeed 0.5.4

Interactive terminal input reader
Documentation
extern crate linefeed;

use std::io;
use std::sync::Arc;

use linefeed::{Interface, ReadResult};
use linefeed::complete::PathCompleter;

fn main() -> io::Result<()> {
    let interface = Interface::new("path-completion-demo")?;

    interface.set_completer(Arc::new(PathCompleter));
    interface.set_prompt("path> ")?;

    while let ReadResult::Input(line) = interface.read_line()? {
        println!("read input: {:?}", line);

        if !line.trim().is_empty() {
            interface.add_history(line);
        }
    }

    println!("Goodbye.");

    Ok(())
}