]> git.lizzy.rs Git - rust.git/commitdiff
minor: simplify
authorAleksey Kladov <aleksey.kladov@gmail.com>
Mon, 26 Apr 2021 16:30:50 +0000 (19:30 +0300)
committerAleksey Kladov <aleksey.kladov@gmail.com>
Mon, 26 Apr 2021 16:30:50 +0000 (19:30 +0300)
crates/stdx/src/lib.rs

index 857567a853aabf46a91b55b5ce3af49453258c86..1b6211044b4af3df6e09214dc703afc36f101647 100644 (file)
@@ -14,18 +14,8 @@ pub fn is_ci() -> bool {
 
 #[must_use]
 pub fn timeit(label: &'static str) -> impl Drop {
-    struct Guard {
-        label: &'static str,
-        start: Instant,
-    }
-
-    impl Drop for Guard {
-        fn drop(&mut self) {
-            eprintln!("{}: {:.2?}", self.label, self.start.elapsed())
-        }
-    }
-
-    Guard { label, start: Instant::now() }
+    let start = Instant::now();
+    defer(move || eprintln!("{}: {:.2?}", label, start.elapsed()))
 }
 
 /// Prints backtrace to stderr, useful for debugging.
@@ -179,6 +169,7 @@ pub fn equal_range_by<T, F>(slice: &[T], mut key: F) -> ops::Range<usize>
     start..start + len
 }
 
+#[must_use]
 pub fn defer<F: FnOnce()>(f: F) -> impl Drop {
     struct D<F: FnOnce()>(Option<F>);
     impl<F: FnOnce()> Drop for D<F> {