input_filter/
input_filter.rs

1use lineeditor::input_filter::InputFilter;
2use lineeditor::LineEditor;
3use lineeditor::LineEditorResult;
4use lineeditor::StringPrompt;
5
6fn main() {
7    let prompt = StringPrompt::new("prompt> ".to_string());
8    let mut line_editor = LineEditor::new(Box::new(prompt));
9
10    line_editor.set_input_filter(InputFilter::Options(vec![
11        Box::new(InputFilter::Digit),
12        Box::new(InputFilter::Whitespace),
13    ]));
14
15    let bindings = line_editor.keybinding();
16    bindings.register_common_control_bindings();
17    bindings.register_common_navigation_bindings();
18    bindings.register_common_edit_bindings();
19    bindings.register_common_selection_bindings();
20
21    match line_editor.read_line() {
22        Ok(LineEditorResult::Success(line)) => {
23            println!("Line {}", line);
24        }
25        _ => {}
26    }
27}