html5ever/macros.rs
1// Copyright 2014-2017 The html5ever Project Developers. See the
2// COPYRIGHT file at the top-level directory of this distribution.
3//
4// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
5// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
6// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
7// option. This file may not be copied, modified, or distributed
8// except according to those terms.
9
10macro_rules! unwrap_or_return {
11 ($opt:expr) => {{
12 let Some(x) = $opt else {
13 return;
14 };
15 x
16 }};
17 ($opt:expr, $retval:expr) => {{
18 let Some(x) = $opt else {
19 return $retval;
20 };
21 x
22 }};
23}
24pub(crate) use unwrap_or_return;
25
26macro_rules! time {
27 ($e:expr) => {{
28 let t0 = ::std::time::Instant::now();
29 let result = $e;
30 let dt = t0.elapsed().as_nanos() as u64;
31 (result, dt)
32 }};
33}
34pub(crate) use time;