pub fn measure<Out, F: FnOnce() -> Out>(f: F) -> (Out, time::Duration) {
let start = time::now();
let res = f();
(res, time::now() - start)
}
pub fn measure<Out, F: FnOnce() -> Out>(f: F) -> (Out, time::Duration) {
let start = time::now();
let res = f();
(res, time::now() - start)
}