ic_websocket_cdk/
utils.rs

1#[cfg(not(test))]
2use ic_cdk::api::time;
3
4use crate::types::TimestampNs;
5
6#[macro_export]
7macro_rules! custom_print {
8    ($($arg:tt)*) => {
9        #[cfg(not(test))]
10        {
11            ic_cdk::println!("[IC-WEBSOCKET-CDK]: {}", format!($($arg)*));
12        }
13        #[cfg(test)]
14        {
15            println!("[IC-WEBSOCKET-CDK]: {}", format!($($arg)*));
16        }
17    }
18}
19
20#[macro_export]
21macro_rules! custom_trap {
22    ($($arg:tt)*) => {
23        #[cfg(not(test))]
24        {
25            ic_cdk::trap($($arg)*);
26        }
27        #[cfg(test)]
28        {
29            panic!($($arg)*);
30        }
31    }
32}
33
34pub(crate) fn get_current_time() -> TimestampNs {
35    #[cfg(test)]
36    {
37        use std::time::SystemTime;
38        let duration_since_epoch = SystemTime::now()
39            .duration_since(SystemTime::UNIX_EPOCH)
40            .unwrap();
41        let timestamp_nanos = duration_since_epoch.as_nanos();
42        timestamp_nanos as TimestampNs
43    }
44    #[cfg(not(test))]
45    {
46        time()
47    }
48}