about summary refs log tree commit diff
path: root/src/lib/time.rs
blob: d2c61b74e9884cf82d28622c69c70c5080140824 (plain)
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


native "rust" mod rustrt {
    fn get_time(&mutable u32 sec, &mutable u32 usec);
    fn nano_time(&mutable u64 ns);
}

type timeval = rec(u32 sec, u32 usec);

fn get_time() -> timeval {
    auto sec = 0u32;
    auto usec = 0u32;
    rustrt::get_time(sec, usec);
    ret rec(sec=sec, usec=usec);
}

fn precise_time_ns() -> u64 {
    auto ns = 0u64;
    rustrt::nano_time(ns);
    ret ns;
}

fn precise_time_s() -> float {
    ret (precise_time_ns() as float) / 1000000000.;
}