macro_rules! from_sec {
($sec:expr, $frac:expr, on=$scale:expr, target=$target:expr) => { ... };
($sec:expr, $frac:expr, target=$target:expr, on=$scale:expr) => { ... };
($sec:expr, on=$scale:expr, target=$target:expr) => { ... };
($sec:expr, target=$target:expr, on=$scale:expr) => { ... };
($sec:expr, $frac:expr, on=$scale:expr) => { ... };
($sec:expr, $frac:expr, target=$target:expr) => { ... };
($sec:expr, on=$scale:expr) => { ... };
($sec:expr, target=$target:expr) => { ... };
($sec:expr, $frac:expr) => { ... };
($sec:expr) => { ... };
}Expand description
Builds a Dt from whole seconds and an optional signed
sub-second remainder (attoseconds).
Sugar for Dt::from_sec_and_frac. Does
not perform time-scale conversion.
§Defaults
| Omitted | Default |
|---|---|
| fraction | 0 |
on and target | both Scale::TAI |
only on=s | target=s |
only target=t | on=TAI |
§Forms
from_sec!(sec)
from_sec!(sec, frac)
from_sec!(sec, on=s)
from_sec!(sec, target=t)
from_sec!(sec, on=s, target=t)
from_sec!(sec, target=t, on=s)
from_sec!(sec, frac, on=s)
from_sec!(sec, frac, target=t)
from_sec!(sec, frac, on=s, target=t)
from_sec!(sec, frac, target=t, on=s)§Examples
use deep_time::Scale;
use deep_time::{dt, from_sec};
let a = from_sec!(1);
let b = from_sec!(1, 300_000_000_000_000_000);
let c = from_sec!(-1, -300_000_000_000_000_000, on=Scale::TAI);
let d = from_sec!(0, on=Scale::UTC);
let e = from_sec!(1, on=Scale::TAI, target=Scale::UTC);
let f = from_sec!(1, target=Scale::UTC, on=Scale::TAI);
assert_eq!(a, deep_time::Dt::from_sec_and_frac(1, 0, Scale::TAI, Scale::TAI));
assert_eq!(b, deep_time::Dt::from_sec_and_frac(1, 300_000_000_000_000_000, Scale::TAI, Scale::TAI));
assert_eq!(c, deep_time::Dt::from_sec_and_frac(-1, -300_000_000_000_000_000, Scale::TAI, Scale::TAI));
assert_eq!(d, deep_time::Dt::from_sec_and_frac(0, 0, Scale::UTC, Scale::UTC));
assert_eq!(e, deep_time::Dt::from_sec_and_frac(1, 0, Scale::TAI, Scale::UTC));
assert_eq!(f, e);
let signed = from_sec!(-1, -300_000_000_000_000_000);
let floor = from_sec!(-2, 700_000_000_000_000_000);
assert_eq!(signed, floor);
assert_eq!(signed, dt!(-1_300_000_000_000_000_000));