blob: 6fd366b7f9c12deaf9c3246c71f73216bb995ba0 [file] [log] [blame]
David Tolnaydd125562017-12-31 02:16:22 -05001#[macro_export]
2macro_rules! errorf {
3 ($($tt:tt)*) => {{
4 use ::std::io::Write;
5 let stderr = ::std::io::stderr();
6 write!(stderr.lock(), $($tt)*).unwrap();
7 }};
8}
9
10#[macro_export]
David Tolnayf2cfd722017-12-31 18:02:51 -050011macro_rules! punctuated {
David Tolnaydd125562017-12-31 02:16:22 -050012 ($first:expr, $($rest:expr,)*) => {{
David Tolnayf2cfd722017-12-31 18:02:51 -050013 let mut seq = ::syn::punctuated::Punctuated::new();
David Tolnaydd125562017-12-31 02:16:22 -050014 let mut last = $first;
15 $(
David Tolnayf2cfd722017-12-31 18:02:51 -050016 seq.push(::std::mem::replace(&mut last, $rest));
17 seq.push_trailing(::std::default::Default::default());
David Tolnaydd125562017-12-31 02:16:22 -050018 )*
19 last = last;
David Tolnayf2cfd722017-12-31 18:02:51 -050020 seq.push(last);
21 seq
David Tolnaydd125562017-12-31 02:16:22 -050022 }};
23
24 ($($e:expr),+) => {
David Tolnayf2cfd722017-12-31 18:02:51 -050025 punctuated!($($e,)+)
David Tolnaydd125562017-12-31 02:16:22 -050026 };
27}