Mtime.SpanMonotonic time spans
The type for non-negative monotonic time spans.
They represent the difference between two monotonic clock readings with nanosecond precision (1e-9s) and can measure up to approximatevely 584 Julian year spans before silently rolling over (unlikely since this is in a single program run).
val zero : tzero is a span of 0ns.
val one : tone is a span of 1ns.
val max_span : tmax_span is a span of 2^64-1ns.
n * dur is n times duration n. Does not check for overflow or that n is positive.
val ns : tns is a nanosecond duration, 1·10-9s.
val us : tus is a microsecond duration, 1·10-6s.
val ms : tms is a millisecond duration, 1·10-3s.
val s : ts is a second duration, 1s.
val min : tmin is a minute duration, 60s.
val hour : thour is an hour duration, 3600s.
val day : tday is a day duration, 86'400s.
val year : tyear is a Julian year duration (365.25 days), 31'557'600s.
val to_uint64_ns : t -> int64to_uint64_ns s is s as an unsigned 64-bit integer nanosecond span.
val of_uint64_ns : int64 -> tof_uint64_ns u is the unsigned 64-bit integer nanosecond span u as a span.
val of_float_ns : float -> t optionof_float_ns f is the positive floating point nanosecond span f as a span. This is None if f is negative, non finite, or larger or equal than 253 (~104 days, the largest exact floating point integer).
val to_float_ns : t -> floatto_float_ns s is span as a nanosecond floating point span. Note that if s is larger than 253 (~104 days, the largest exact floating point integer) the result is an approximation and will not round trip with of_float_ns.
pp formats with Fmt.uint64_ns_span.