1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
/** * Copyright © 2018 nyantec GmbH <oss@nyantec.com> * Authors: * Paul Asmuth <asm@nyantec.com> * Karl Engelhardt <ken@nyantec.com> * * Provided that these terms and disclaimer and all copyright notices * are retained or reproduced in an accompanying document, permission * is granted to deal in this work without restriction, including un‐ * limited rights to use, publicly perform, distribute, sell, modify, * merge, give away, or sublicence. * * This work is provided “AS IS” and WITHOUT WARRANTY of any kind, to * the utmost extent permitted by applicable law, neither express nor * implied; without malicious intent or gross negligence. In no event * may a licensor, author or contributor be held liable for indirect, * direct, other damage, loss, or other issues arising in any way out * of dealing in the work, even if advised of the possibility of such * damage or existence of a defect, except proven that it results out * of said person’s immediate fault when using the work as intended. */ use std::time::{SystemTime, UNIX_EPOCH}; pub fn get_unix_microseconds() -> Result<u64, ::Error> { match SystemTime::now().duration_since(UNIX_EPOCH) { Ok(t) => Ok(t.as_secs() * 1000000 + t.subsec_nanos() as u64 / 1000), Err(_) => Err(err_server!("cannot get current timestamp")), } }