Module Mtime.Span

Monotonic time spans

Time spans

type t = span

See span.

val zero : span

zero is a span of 0ns.

val one : span

one is a span of 1ns.

val max_span : span

max_span is a span of 2^64-1ns.

val add : span -> span -> span

add s0 s1 is s0 + s1. Warning. Rolls over on overflow.

val abs_diff : span -> span -> span

abs_diff s0 s1 is the absolute difference between s0 and s1.

Predicates and comparisons

val equal : span -> span -> bool

equal s0 s1 is s0 = s1.

val compare : span -> span -> int

compare s0 s1 orders span by increasing duration.

Durations

val (*) : int -> span -> span

n * dur is n times duration n. Does not check for overflow or that n is positive.

val ns : span

ns is a nanosecond duration, 1·10-9s.

val us : span

us is a microsecond duration, 1·10-6s.

val ms : span

ms is a millisecond duration, 1·10-3s.

val s : span

s is a second duration, 1s.

val min : span

min is a minute duration, 60s.

val hour : span

hour is an hour duration, 3600s.

val day : span

day is a day duration, 86'400s.

val year : span

year is a Julian year duration (365.25 days), 31'557'600s.

Conversions

val to_uint64_ns : span -> int64

to_uint64_ns s is s as an unsigned 64-bit integer nanosecond span.

val of_uint64_ns : int64 -> span

of_uint64_ns u is the unsigned 64-bit integer nanosecond span u as a span.

Formatting

val pp : span Fmt.t

pp formats with Fmt.uint64_ns_span.

val pp_ns : span Fmt.t

pp_ns ppf s prints s as an unsigned 64-bit integer nanosecond span.