Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- let result = captures!("Event A: 123.45",
- r"FloatEvent: (d+)" => |x| MyEvent::FloatEvent(&x[1].parse.unwrap()),
- r"StringEvent: (.+)" => |x| MyEvent::StringEvent(&x[1]),
- );
- assert_eq!(result, MyEvent::FloatEvent(123.45));
- macro_rules! captures {
- ( $test:expr, $re:expr ) => { None };
- ( $test:expr, $re:expr => $closure:expr, $( $re2:expr => $rest:expr, )* ) => {
- match Regex::new($re).unwrap().captures(line) { // todo lazy static
- Some(caps) => $closure(caps),
- _ => captures!($test, $re, $( $re2, $rest, )*)
- }
- };
- }
Add Comment
Please, Sign In to add comment