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;