dm_x

A Rust crate for using dmenu, a keyboard-driven menu originally written for use with tiling window managers.

Using this crate involves implementing the Item trait for your type, and then passing a slice of those to the Dmx::select() method.

Item is already implemented for &str, so the following should work:

```rust let choices: &[&str] = &[ "Choice A", "Choice B", "Choice C", "Both A and B", "Both B and C", "All Three", "None of the Above", ];

let dmx = Dmx::default();

match dmx.select("Pick One:", choices).unwrap() { None => { println!("You declined to select an option."); }, Some(n) => match choices.get(n) { None => { println!("You somehow chose an invalid choice."); }, Some(choice) => { println!("You chose \"{}\".", choice); } } } ```

See the examples/ for non-trivial implementation of Item.