Skip to main content

dt

Macro dt 

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

Builds a Dt from total attoseconds with optional scale labels.

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

§Defaults

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

§Forms

FormMeaning
dt!(attos)both scales TAI
dt!(attos, on=s)scale and target s
dt!(attos, target=t)scale TAI, target t
dt!(attos, on=s, target=t)either order
dt!(attos, target=t, on=s)either order

§Examples

use deep_time::{Dt, Scale, dt};

let a = dt!(Dt::sec_to_attos(1));
let b = dt!(0, on=Scale::UTC);
let c = dt!(0, on=Scale::TAI, target=Scale::UTC);
let d = dt!(0, target=Scale::UTC, on=Scale::TAI);
let e = dt!(0, target=Scale::UTC);

assert_eq!(a, Dt::new(Dt::sec_to_attos(1), Scale::TAI, Scale::TAI));
assert_eq!(b, Dt::new(0, Scale::UTC, Scale::UTC));
assert_eq!(c, Dt::new(0, Scale::TAI, Scale::UTC));
assert_eq!(d, c);
assert_eq!(e, Dt::new(0, Scale::TAI, Scale::UTC));