macro_rules! dmenu {
(__@internal_start@__ $(args $($arg:expr)+)?) => { ... };
(__@internal_end@__ $stdin:expr, $stdout:expr) => { ... };
(iter $e:expr $(;args $($arg:expr),+)?) => { ... };
(stringify $($e:expr),* $(;args $($arg:expr),+)?) => { ... };
(args $($arg:expr),+) => { ... };
(prompt $text:expr $(;args $($arg:expr),+)?) => { ... };
($($e:expr),* $(;args $($arg:expr),+)?) => { ... };
}Expand description
§How to use
§Standard
Requires every argument to implement .as_bytes().
Might also not need to pass any arguments at all
// Example
let output = dmenu!("1", "2", "3");§Stringify
Same as standard but passes every argument to stringify!().
Again, might also not need to pass any arguments at all
// Example
let output = dmenu!(stringify 1, 2, 3);§Iter
Accepts an iterator.
Every value yielded by the iterator needs to implement .as_bytes()
// Example
let mut a = vec!["1", "2", "3"];
a.push("4");
let output = dmenu!(iter a);§Prompt
Only shows a prompt with the specified prompt text
// Example
let username = dmenu!(prompt "What's your name?");§Optional arguments
You can specify optional arguments to pass to dmenu by separating them with ; args
// Example
let output = dmenu!(stringify 1, 2, 3; args "-p", "Choose a number", "-l", "3");§Arguments only
Empty call, only allows to specify arguments to pass on to dmenu
// Example
let output = dmenu!(args
"-p", "What's your name?",
"--nb", "#FFFFFF",
"--nf", "#000000"
);