Skip to main content

from_ns

Macro from_ns 

Source
macro_rules! from_ns {
    ($ns:expr, $frac:expr, on=$scale:expr, target=$target:expr) => { ... };
    ($ns:expr, $frac:expr, target=$target:expr, on=$scale:expr) => { ... };
    ($ns:expr, on=$scale:expr, target=$target:expr) => { ... };
    ($ns:expr, target=$target:expr, on=$scale:expr) => { ... };
    ($ns:expr, $frac:expr, on=$scale:expr) => { ... };
    ($ns:expr, $frac:expr, target=$target:expr) => { ... };
    ($ns:expr, on=$scale:expr) => { ... };
    ($ns:expr, target=$target:expr) => { ... };
    ($ns:expr, $frac:expr) => { ... };
    ($ns:expr) => { ... };
}
Expand description

Builds a Dt from whole nanoseconds and an optional signed fractional remainder in attoseconds.

Sugar for Dt::from_ns. Does not perform time-scale conversion.

§Defaults

OmittedDefault
fraction0
on and targetboth Scale::TAI
only on=starget=s
only target=ton=TAI

§Forms

from_ns!(ns)
from_ns!(ns, frac)
from_ns!(ns, on=s)
from_ns!(ns, target=t)
from_ns!(ns, on=s, target=t)
from_ns!(ns, target=t, on=s)
from_ns!(ns, frac, on=s)
from_ns!(ns, frac, target=t)
from_ns!(ns, frac, on=s, target=t)
from_ns!(ns, frac, target=t, on=s)

§Examples

use deep_time::Scale;
use deep_time::from_ns;

// 1 ns = 10⁹ attoseconds; 0.3 ns = 300_000_000 attoseconds
let a = from_ns!(1);
let b = from_ns!(1, 300_000_000);
let c = from_ns!(-1, -300_000_000, on=Scale::TAI);
let d = from_ns!(0, on=Scale::UTC);
let e = from_ns!(1, on=Scale::TAI, target=Scale::UTC);
let f = from_ns!(1, target=Scale::UTC);

assert_eq!(a, deep_time::Dt::from_ns(1, 0, Scale::TAI, Scale::TAI));
assert_eq!(b, deep_time::Dt::from_ns(1, 300_000_000, Scale::TAI, Scale::TAI));
assert_eq!(c, deep_time::Dt::from_ns(-1, -300_000_000, Scale::TAI, Scale::TAI));
assert_eq!(d, deep_time::Dt::from_ns(0, 0, Scale::UTC, Scale::UTC));
assert_eq!(e, deep_time::Dt::from_ns(1, 0, Scale::TAI, Scale::UTC));
assert_eq!(f, e);

let signed = from_ns!(-1, -300_000_000);
let floor = from_ns!(-2, 700_000_000);
assert_eq!(signed, floor);
assert_eq!(signed, deep_time::Dt::from_ns(-1, -300_000_000, Scale::TAI, Scale::TAI));