brace-expander

Library to support bash-like brace expansions
Examples
use brace_expander::BraceExpander;
let be = BraceExpander::default();
assert_eq!(be.expand("{a,b}").unwrap().join(" "), "a b");
assert_eq!(be.expand("hello_{a,b}").unwrap().join(" "), "hello_a hello_b");
assert_eq!(be.expand("G{o,u}{b,g}").unwrap().join(" "), "Gob Gog Gub Gug");
assert_eq!(be
.expand("{{a,b}{c,{e,f}},g}")
.unwrap()
.join(" "), "ac ae af bc be bf g");
assert_eq!(be.expand("thing{1..3}").unwrap().join(" "), "thing1 thing2 thing3");
assert_eq!(be.expand("thing{3..1}").unwrap().join(" "), "thing3 thing2 thing1");
assert_eq!(be.expand("{A..C}").unwrap().join(" "), "A B C");
assert_eq!(be.expand("{A..E..2}").unwrap().join(" "), "A C E");
assert_eq!(be.expand("Agent{006..008}").unwrap().join(" "), "Agent006 Agent007 Agent008");
License
MIT or Apache-2.0
Pull requests encouraged