ynqa / promkit

A toolkit for building interactive prompt in Rust
MIT License
237 stars 6 forks source link

Validator type doesn't allow capture of external variables #29

Open wellcaffeinated opened 5 days ago

wellcaffeinated commented 5 days ago

Since type Validator<T> = fn(&T) -> bool;, i can't do something like:

let existing_filenames = read_dir(...);

Readline::default()
    .title("Name new file:")
    .validator(|name| !existing_filenames.contains(name.to_string()), |name| format!("File {} already exists", name))
    .prompt()?
    .run()?;

Suggest swapping this to something like type Validator<T> = Box<dyn Fn(&T) -> bool>;