ocaml-trace/mtime/Mtime/Span/index.html
2025-09-15 14:25:35 +00:00

2 lines
14 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Span (mtime.Mtime.Span)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../../_odoc-theme/odoc.css"/><meta name="generator" content="odoc 3.1.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../../../index.html">Index</a> &#x00BB; <a href="../../index.html">mtime</a> &#x00BB; <a href="../index.html">Mtime</a> &#x00BB; Span</nav><header class="odoc-preamble"><h1>Module <code><span>Mtime.Span</span></code></h1><p>Monotonic time spans.</p></header><div class="odoc-tocs"><nav class="odoc-toc odoc-local-toc"><ul><li><a href="#spans">Monotonic time spans</a></li><li><a href="#preds">Predicates</a></li><li><a href="#arith">Arithmetic</a></li><li><a href="#const">Durations</a></li><li><a href="#convert">Converting</a></li><li><a href="#fmt">Formatters</a></li></ul></nav></div><div class="odoc-content"><h2 id="spans"><a href="#spans" class="anchor"></a>Monotonic time spans</h2><div class="odoc-spec"><div class="spec type anchored" id="type-t"><a href="#type-t" class="anchor"></a><code><span><span class="keyword">type</span> t</span><span> = <a href="../index.html#type-span">span</a></span></code></div><div class="spec-doc"><p>See <a href="../index.html#type-span"><code>Mtime.span</code></a>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-zero"><a href="#val-zero" class="anchor"></a><code><span><span class="keyword">val</span> zero : <a href="../index.html#type-span">span</a></span></code></div><div class="spec-doc"><p><code>zero</code> is a span of 0ns.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-one"><a href="#val-one" class="anchor"></a><code><span><span class="keyword">val</span> one : <a href="../index.html#type-span">span</a></span></code></div><div class="spec-doc"><p><code>one</code> is a span of 1ns.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-min_span"><a href="#val-min_span" class="anchor"></a><code><span><span class="keyword">val</span> min_span : <a href="../index.html#type-span">span</a></span></code></div><div class="spec-doc"><p><code>min_span</code> is <a href="#val-zero"><code>zero</code></a>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-max_span"><a href="#val-max_span" class="anchor"></a><code><span><span class="keyword">val</span> max_span : <a href="../index.html#type-span">span</a></span></code></div><div class="spec-doc"><p><code>max_span</code> is 2<sup>64</sup>-1ns.</p></div></div><h2 id="preds"><a href="#preds" class="anchor"></a>Predicates</h2><div class="odoc-spec"><div class="spec value anchored" id="val-equal"><a href="#val-equal" class="anchor"></a><code><span><span class="keyword">val</span> equal : <span><a href="../index.html#type-span">span</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="../index.html#type-span">span</a> <span class="arrow">&#45;&gt;</span></span> bool</span></code></div><div class="spec-doc"><p><code>equal span span'</code> is <code>true</code> iff <code>span</code> and <code>span'</code> are equal.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-compare"><a href="#val-compare" class="anchor"></a><code><span><span class="keyword">val</span> compare : <span><a href="../index.html#type-span">span</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="../index.html#type-span">span</a> <span class="arrow">&#45;&gt;</span></span> int</span></code></div><div class="spec-doc"><p><code>compare span span'</code> orders spans by increasing duration.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-is_shorter"><a href="#val-is_shorter" class="anchor"></a><code><span><span class="keyword">val</span> is_shorter : <span><a href="../index.html#type-span">span</a> <span class="arrow">&#45;&gt;</span></span> <span><span class="label">than</span>:<a href="../index.html#type-span">span</a> <span class="arrow">&#45;&gt;</span></span> bool</span></code></div><div class="spec-doc"><p><code>is_shorter span ~than</code> is <code>true</code> iff <code>span</code> lasts less than <code>than</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-is_longer"><a href="#val-is_longer" class="anchor"></a><code><span><span class="keyword">val</span> is_longer : <span><a href="../index.html#type-span">span</a> <span class="arrow">&#45;&gt;</span></span> <span><span class="label">than</span>:<a href="../index.html#type-span">span</a> <span class="arrow">&#45;&gt;</span></span> bool</span></code></div><div class="spec-doc"><p><code>is_longer span ~than</code> is <code>true</code> iff <code>span</code> lasts more than <code>than</code>.</p></div></div><h2 id="arith"><a href="#arith" class="anchor"></a>Arithmetic</h2><div class="odoc-spec"><div class="spec value anchored" id="val-add"><a href="#val-add" class="anchor"></a><code><span><span class="keyword">val</span> add : <span><a href="../index.html#type-span">span</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="../index.html#type-span">span</a> <span class="arrow">&#45;&gt;</span></span> <a href="../index.html#type-span">span</a></span></code></div><div class="spec-doc"><p><code>add span span'</code> is <code>span + span'</code>.</p><p><b>Warning.</b> Rolls over on overflow.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-abs_diff"><a href="#val-abs_diff" class="anchor"></a><code><span><span class="keyword">val</span> abs_diff : <span><a href="../index.html#type-span">span</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="../index.html#type-span">span</a> <span class="arrow">&#45;&gt;</span></span> <a href="../index.html#type-span">span</a></span></code></div><div class="spec-doc"><p><code>abs_diff span span'</code> is the absolute difference between <code>span</code> and <code>span'</code>.</p></div></div><h2 id="const"><a href="#const" class="anchor"></a>Durations</h2><div class="odoc-spec"><div class="spec value anchored" id="val-(*)"><a href="#val-(*)" class="anchor"></a><code><span><span class="keyword">val</span> (*) : <span>int <span class="arrow">&#45;&gt;</span></span> <span><a href="../index.html#type-span">span</a> <span class="arrow">&#45;&gt;</span></span> <a href="../index.html#type-span">span</a></span></code></div><div class="spec-doc"><p><code>n * dur</code> is <code>n</code> times duration <code>dur</code>.</p><p><b>Warning.</b> Does not check for overflow or that <code>n</code> is positive.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-ns"><a href="#val-ns" class="anchor"></a><code><span><span class="keyword">val</span> ns : <a href="../index.html#type-span">span</a></span></code></div><div class="spec-doc"><p><code>ns</code> is a nanosecond duration, 1·10<sup>-9</sup>s.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 1.4.0</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-us"><a href="#val-us" class="anchor"></a><code><span><span class="keyword">val</span> us : <a href="../index.html#type-span">span</a></span></code></div><div class="spec-doc"><p><code>us</code> is a microsecond duration, 1·10<sup>-6</sup>s.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 1.4.0</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-ms"><a href="#val-ms" class="anchor"></a><code><span><span class="keyword">val</span> ms : <a href="../index.html#type-span">span</a></span></code></div><div class="spec-doc"><p><code>ms</code> is a millisecond duration, 1·10<sup>-3</sup>s.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 1.4.0</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-s"><a href="#val-s" class="anchor"></a><code><span><span class="keyword">val</span> s : <a href="../index.html#type-span">span</a></span></code></div><div class="spec-doc"><p><code>s</code> is a second duration, 1s.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 1.4.0</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-min"><a href="#val-min" class="anchor"></a><code><span><span class="keyword">val</span> min : <a href="../index.html#type-span">span</a></span></code></div><div class="spec-doc"><p><code>min</code> is a minute duration, 60s.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 1.4.0</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-hour"><a href="#val-hour" class="anchor"></a><code><span><span class="keyword">val</span> hour : <a href="../index.html#type-span">span</a></span></code></div><div class="spec-doc"><p><code>hour</code> is an hour duration, 3600s.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 1.4.0</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-day"><a href="#val-day" class="anchor"></a><code><span><span class="keyword">val</span> day : <a href="../index.html#type-span">span</a></span></code></div><div class="spec-doc"><p><code>day</code> is a day duration, 86'400s.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 1.4.0</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-year"><a href="#val-year" class="anchor"></a><code><span><span class="keyword">val</span> year : <a href="../index.html#type-span">span</a></span></code></div><div class="spec-doc"><p><code>year</code> is a Julian year duration (365.25 days), 31'557'600s.</p></div></div><h2 id="convert"><a href="#convert" class="anchor"></a>Converting</h2><div class="odoc-spec"><div class="spec value anchored" id="val-to_uint64_ns"><a href="#val-to_uint64_ns" class="anchor"></a><code><span><span class="keyword">val</span> to_uint64_ns : <span><a href="../index.html#type-span">span</a> <span class="arrow">&#45;&gt;</span></span> int64</span></code></div><div class="spec-doc"><p><code>to_uint64_ns span</code> is <code>span</code> as an <em>unsigned</em> 64-bit integer nanosecond span.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-of_uint64_ns"><a href="#val-of_uint64_ns" class="anchor"></a><code><span><span class="keyword">val</span> of_uint64_ns : <span>int64 <span class="arrow">&#45;&gt;</span></span> <a href="../index.html#type-span">span</a></span></code></div><div class="spec-doc"><p><code>of_uint64_ns u</code> is the <em>unsigned</em> 64-bit integer nanosecond span <code>u</code> as a span.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-of_float_ns"><a href="#val-of_float_ns" class="anchor"></a><code><span><span class="keyword">val</span> of_float_ns : <span>float <span class="arrow">&#45;&gt;</span></span> <span><a href="../index.html#type-span">span</a> option</span></span></code></div><div class="spec-doc"><p><code>of_float_ns f</code> is the positive floating point nanosecond span <code>f</code> as a span. This is <code>None</code> if <code>f</code> is negative, non finite, or larger or equal than 2<sup>53</sup> (~104 days, the largest exact floating point integer).</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 2.0.0</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-to_float_ns"><a href="#val-to_float_ns" class="anchor"></a><code><span><span class="keyword">val</span> to_float_ns : <span><a href="../index.html#type-span">span</a> <span class="arrow">&#45;&gt;</span></span> float</span></code></div><div class="spec-doc"><p><code>to_float_ns s</code> is <code>span</code> as a nanosecond floating point span. Note that if <code>s</code> is larger than 2<sup>53</sup> (~104 days, the largest exact floating point integer) the result is an approximation and will not round trip with <a href="#val-of_float_ns"><code>of_float_ns</code></a>.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 2.0.0</li></ul></div></div><h2 id="fmt"><a href="#fmt" class="anchor"></a>Formatters</h2><div class="odoc-spec"><div class="spec value anchored" id="val-pp"><a href="#val-pp" class="anchor"></a><code><span><span class="keyword">val</span> pp : <span><a href="../../../ocaml/Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="../index.html#type-span">span</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p><code>pp</code> formats spans according to their magnitude using SI prefixes on seconds and accepted non-SI units. Years are counted in Julian years (365.25 SI-accepted days) as <a href="http://www.iau.org/publications/proceedings_rules/units/">defined</a> by the International Astronomical Union.</p><p>Rounds towards positive infinity, i.e. over approximates, no duration is formatted shorter than it is.</p><p>The output is UTF-8 encoded, it uses U+03BC for <code>µs</code> (10<sup>-6</sup><code>s</code>).</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-dump"><a href="#val-dump" class="anchor"></a><code><span><span class="keyword">val</span> dump : <span><a href="../../../ocaml/Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p><code>dump ppf span</code> formats an unspecified raw representation of <code>span</code> on <code>ppf</code>.</p></div></div></div></body></html>