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_else {
11 ($opt:expr, $else_block:block) => {{
12 let Some(x) = $opt else { $else_block };
13 x
14 }};
15}
16
17macro_rules! unwrap_or_return {
18 ($opt:expr) => {
19 unwrap_or_else!($opt, {
20 return;
21 })
22 };
23 ($opt:expr, $retval:expr) => {
24 unwrap_or_else!($opt, { return $retval })
25 };
26}
27
28macro_rules! time {
29 ($e:expr) => {{
30 let now = ::std::time::Instant::now();
31 let result = $e;
32 let d = now.elapsed();
33 let dt = d.as_secs() * 1_000_000_000 + u64::from(d.subsec_nanos());
34 (result, dt)
35 }};
36}
37

Provided by KDAB

Privacy Policy
Learn Rust with the experts
Find out more