Module Timing_wheel.Alarm_precision

type t
val compare : t -> t -> int
val sexp_of_t : t -> Ppx_sexp_conv_lib.Sexp.t
include Core_kernel.Equal.S with type t := t
type t
val equal : t Core_kernel.Equal.equal
val of_span : Core_kernel.Time_ns.Span.t -> t
val of_span_floor_pow2_ns : Core_kernel.Time_ns.Span.t -> t

of_span_floor_pow2_ns span returns the largest alarm precision less than or equal to span that is a power of two number of nanoseconds.

val to_span : t -> Core_kernel.Time_ns.Span.t
val one_nanosecond : t
val about_one_day : t

~19.5 h

val about_one_microsecond : t

1024 us

val about_one_millisecond : t

~1.05 ms

val about_one_second : t

~1.07 s

val mul : t -> pow2:int -> t

mul t ~pow2 is t * 2^pow2. pow2 may be negative, but mul does not check for overflow or underflow.

val div : t -> pow2:int -> t

div t ~pow2 is t / 2^pow2. pow2 may be negative, but div does not check for overflow or underflow.

module Unstable : sig ... end

The unstable bin and sexp format is that of Time_ns.Span, with the caveat that deserialization implicitly floors the time span to the nearest power of two nanoseconds. This ensures that the alarm precision that is used is at least as precise than the alarm precision that is stated.