package mtime

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

Monotonic time spans.

Monotonic time spans

type t = span
val zero : span

zero is a span of 0ns.

val one : span

one is a span of 1ns.

val min_span : span

min_span is zero.

val max_span : span

max_span is 264-1ns.

Predicates

val equal : span -> span -> bool

equal span span' is true iff span and span' are equal.

val compare : span -> span -> int

compare span span' orders spans by increasing duration.

Arithmetic

val add : span -> span -> span

add span span' is span + span'.

Warning. Rolls over on overflow.

val abs_diff : span -> span -> span

abs_diff span span' is the absolute difference between span and span'.

Durations

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

n * dur is n times duration dur.

Warning. 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.

Converting

val to_uint64_ns : span -> int64

to_uint64_ns span is span 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.

val to_ns : span -> float

to_ns span is span in nanoseconds (1e-9s).

val to_us : span -> float

to_us span is span in microseconds (1e-6s).

val to_ms : span -> float

to_ms span is span in milliseconds (1e-3s).

val to_s : span -> float

to_s span is span in seconds.

val to_min : span -> float

to_min span is span in SI-accepted minutes (60s).

val to_hour : span -> float

to_hour span is span in SI-accepted hours (3600s).

val to_day : span -> float

to_day span is span in SI-accepted days (24 hours, 86400s).

val to_year : span -> float

to_year span is span in Julian years (365.25 days, 31'557'600s).

Formatters

val pp : Format.formatter -> span -> unit

pp_span ppf span formats an unspecified representation of span on ppf. The representation is not fixed-width, depends on the magnitude of span and uses locale independent standard time scale abbreviations.

val pp_float_s : Format.formatter -> float -> unit

pp_float_s formats like pp does but on a floating point seconds time span value (which can be negative).

val dump : Format.formatter -> t -> unit

dump ppf span formats an unspecified raw representation of span on ppf.