mirror of
https://github.com/c-cube/linol.git
synced 2025-12-06 03:05:31 -05:00
49 lines
78 KiB
HTML
49 lines
78 KiB
HTML
<!DOCTYPE html>
|
||
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Fmt (fmt.Fmt)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../_odoc-theme/odoc.css"/><meta name="generator" content="odoc 3.0.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> » <a href="../index.html">fmt</a> » Fmt</nav><header class="odoc-preamble"><h1>Module <code><span>Fmt</span></code></h1><p><code>Format</code> pretty-printer combinators.</p><p>Consult <a href="#nameconv" title="nameconv">naming conventions</a> for your pretty-printers.</p><p><b>References</b></p><ul><li>The <code>Format</code> module documentation.</li><li>The required reading <code>Format</code> module <a href="https://ocaml.org/learn/tutorials/format.html">tutorial</a>.</li></ul></header><div class="odoc-tocs"><nav class="odoc-toc odoc-local-toc"><ul><li><a href="#stdos">Standard outputs</a></li><li><a href="#formatting">Formatting</a></li><li><a href="#formatters">Formatters</a></li><li><a href="#seps">Separators</a></li><li><a href="#seq">Sequencing</a></li><li><a href="#boxes">Boxes</a></li><li><a href="#bracks">Brackets</a></li><li><a href="#records">Records</a></li><li><a href="#stdlib">Stdlib types</a></li><li><a href="#mgs">Magnitudes</a></li><li><a href="#binary">Binary data</a></li><li><a href="#text">Words, paragraphs, text and lines</a></li><li><a href="#hci">HCI fragments</a></li><li><a href="#utf8_cond">Conditional UTF-8 formatting</a></li><li><a href="#styled">Styled formatting</a><ul><li><a href="#style-rendering-control">Style rendering control</a></li></ul></li><li><a href="#stringconverters">Converting with string value converters</a></li><li><a href="#deprecated">Deprecated</a></li><li><a href="#nameconv">Naming conventions</a></li></ul></nav></div><div class="odoc-content"><h2 id="stdos"><a href="#stdos" class="anchor"></a>Standard outputs</h2><div class="odoc-spec"><div class="spec value anchored" id="val-stdout"><a href="#val-stdout" class="anchor"></a><code><span><span class="keyword">val</span> stdout : <a href="../../ocaml/Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a></span></code></div><div class="spec-doc"><p><code>stdout</code> is the standard output formatter.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-stderr"><a href="#val-stderr" class="anchor"></a><code><span><span class="keyword">val</span> stderr : <a href="../../ocaml/Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a></span></code></div><div class="spec-doc"><p><code>stderr</code> is the standard error formatter.</p></div></div><h2 id="formatting"><a href="#formatting" class="anchor"></a>Formatting</h2><div class="odoc-spec"><div class="spec value anchored" id="val-pf"><a href="#val-pf" class="anchor"></a><code><span><span class="keyword">val</span> pf :
|
||
<span><a href="../../ocaml/Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a> <span class="arrow">-></span></span>
|
||
<span><span><span>(<span class="type-var">'a</span>, <a href="../../ocaml/Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a>, unit)</span> <a href="../../ocaml/Stdlib/index.html#type-format">format</a></span> <span class="arrow">-></span></span>
|
||
<span class="type-var">'a</span></span></code></div><div class="spec-doc"><p><code>pf</code> is <code>Format.fprintf</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-pr"><a href="#val-pr" class="anchor"></a><code><span><span class="keyword">val</span> pr : <span><span><span>(<span class="type-var">'a</span>, <a href="../../ocaml/Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a>, unit)</span> <a href="../../ocaml/Stdlib/index.html#type-format">format</a></span> <span class="arrow">-></span></span> <span class="type-var">'a</span></span></code></div><div class="spec-doc"><p><code>pr</code> is <code>pf stdout</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-epr"><a href="#val-epr" class="anchor"></a><code><span><span class="keyword">val</span> epr : <span><span><span>(<span class="type-var">'a</span>, <a href="../../ocaml/Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a>, unit)</span> <a href="../../ocaml/Stdlib/index.html#type-format">format</a></span> <span class="arrow">-></span></span> <span class="type-var">'a</span></span></code></div><div class="spec-doc"><p><code>epr</code> is <code>pf stderr</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-str"><a href="#val-str" class="anchor"></a><code><span><span class="keyword">val</span> str : <span><span><span>(<span class="type-var">'a</span>, <a href="../../ocaml/Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a>, unit, string)</span> <a href="../../ocaml/Stdlib/index.html#type-format4">format4</a></span> <span class="arrow">-></span></span> <span class="type-var">'a</span></span></code></div><div class="spec-doc"><p><code>str</code> is <code>Format.asprintf</code>.</p><p><b>Note.</b> When using <code>str</code> <a href="#val-utf_8"><code>utf_8</code></a> and <a href="#val-style_renderer"><code>style_renderer</code></a> are always respectively set to <code>true</code> and <code>`None</code>. See also <a href="#val-str_like"><code>str_like</code></a>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-kpf"><a href="#val-kpf" class="anchor"></a><code><span><span class="keyword">val</span> kpf :
|
||
<span><span>(<span><a href="../../ocaml/Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a> <span class="arrow">-></span></span> <span class="type-var">'a</span>)</span> <span class="arrow">-></span></span>
|
||
<span><a href="../../ocaml/Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a> <span class="arrow">-></span></span>
|
||
<span><span><span>(<span class="type-var">'b</span>, <a href="../../ocaml/Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a>, unit, <span class="type-var">'a</span>)</span> <a href="../../ocaml/Stdlib/index.html#type-format4">format4</a></span> <span class="arrow">-></span></span>
|
||
<span class="type-var">'b</span></span></code></div><div class="spec-doc"><p><code>kpf</code> is <code>Format.kfprintf</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-kstr"><a href="#val-kstr" class="anchor"></a><code><span><span class="keyword">val</span> kstr :
|
||
<span><span>(<span>string <span class="arrow">-></span></span> <span class="type-var">'a</span>)</span> <span class="arrow">-></span></span>
|
||
<span><span><span>(<span class="type-var">'b</span>, <a href="../../ocaml/Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a>, unit, <span class="type-var">'a</span>)</span> <a href="../../ocaml/Stdlib/index.html#type-format4">format4</a></span> <span class="arrow">-></span></span>
|
||
<span class="type-var">'b</span></span></code></div><div class="spec-doc"><p><code>kstr</code> is like <a href="#val-str"><code>str</code></a> but continuation based.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-str_like"><a href="#val-str_like" class="anchor"></a><code><span><span class="keyword">val</span> str_like :
|
||
<span><a href="../../ocaml/Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a> <span class="arrow">-></span></span>
|
||
<span><span><span>(<span class="type-var">'a</span>, <a href="../../ocaml/Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a>, unit, string)</span> <a href="../../ocaml/Stdlib/index.html#type-format4">format4</a></span> <span class="arrow">-></span></span>
|
||
<span class="type-var">'a</span></span></code></div><div class="spec-doc"><p><code>str_like ppf</code> is like <a href="#val-str"><code>str</code></a> except its <a href="#val-utf_8"><code>utf_8</code></a> and <a href="#val-style_renderer"><code>style_renderer</code></a> settings are those of <code>ppf</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-with_buffer"><a href="#val-with_buffer" class="anchor"></a><code><span><span class="keyword">val</span> with_buffer :
|
||
<span><span class="optlabel">?like</span>:<a href="../../ocaml/Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a> <span class="arrow">-></span></span>
|
||
<span><a href="../../ocaml/Stdlib/Buffer/index.html#type-t">Stdlib.Buffer.t</a> <span class="arrow">-></span></span>
|
||
<a href="../../ocaml/Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a></span></code></div><div class="spec-doc"><p><code>with_buffer ~like b</code> is a formatter whose <a href="#val-utf_8"><code>utf_8</code></a> and <a href="#val-style_renderer"><code>style_renderer</code></a> settings are copied from those of <code>like</code> (if provided).</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-failwith"><a href="#val-failwith" class="anchor"></a><code><span><span class="keyword">val</span> failwith : <span><span><span>(<span class="type-var">'a</span>, <a href="../../ocaml/Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a>, unit, <span class="type-var">'b</span>)</span> <a href="../../ocaml/Stdlib/index.html#type-format4">format4</a></span> <span class="arrow">-></span></span> <span class="type-var">'a</span></span></code></div><div class="spec-doc"><p><code>failwith</code> is <code>kstr failwith</code>, raises <a href="../../ocaml/Stdlib/index.html#exception-Failure"><code>Stdlib.Failure</code></a> with a pretty-printed string argument.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-failwith_notrace"><a href="#val-failwith_notrace" class="anchor"></a><code><span><span class="keyword">val</span> failwith_notrace : <span><span><span>(<span class="type-var">'a</span>, <a href="../../ocaml/Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a>, unit, <span class="type-var">'b</span>)</span> <a href="../../ocaml/Stdlib/index.html#type-format4">format4</a></span> <span class="arrow">-></span></span> <span class="type-var">'a</span></span></code></div><div class="spec-doc"><p><code>failwith_notrace</code> is like <a href="#val-failwith"><code>failwith</code></a> but raises with <code>raise_notrace</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-invalid_arg"><a href="#val-invalid_arg" class="anchor"></a><code><span><span class="keyword">val</span> invalid_arg : <span><span><span>(<span class="type-var">'a</span>, <a href="../../ocaml/Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a>, unit, <span class="type-var">'b</span>)</span> <a href="../../ocaml/Stdlib/index.html#type-format4">format4</a></span> <span class="arrow">-></span></span> <span class="type-var">'a</span></span></code></div><div class="spec-doc"><p><code>invalid_arg</code> is <code>kstr invalid_arg</code>, raises <a href="../../ocaml/Stdlib/index.html#exception-Invalid_argument"><code>Stdlib.Invalid_argument</code></a> with a pretty-printed string argument.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-error"><a href="#val-error" class="anchor"></a><code><span><span class="keyword">val</span> error :
|
||
<span><span><span>(<span class="type-var">'b</span>, <a href="../../ocaml/Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a>, unit, <span><span>(<span class="type-var">'a</span>, string)</span> <a href="../../ocaml/Stdlib/index.html#type-result">result</a></span>)</span> <a href="../../ocaml/Stdlib/index.html#type-format4">format4</a></span> <span class="arrow">-></span></span>
|
||
<span class="type-var">'b</span></span></code></div><div class="spec-doc"><p><code>error fmt ...</code> is <code>kstr (fun s -> Error s) fmt ...</code></p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-error_msg"><a href="#val-error_msg" class="anchor"></a><code><span><span class="keyword">val</span> error_msg :
|
||
<span><span><span>(<span class="type-var">'b</span>, <a href="../../ocaml/Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a>, unit, <span><span>(<span class="type-var">'a</span>, <span>[> <span>`Msg of string</span> ]</span>)</span> <a href="../../ocaml/Stdlib/index.html#type-result">result</a></span>)</span> <a href="../../ocaml/Stdlib/index.html#type-format4">format4</a></span> <span class="arrow">-></span></span>
|
||
<span class="type-var">'b</span></span></code></div><div class="spec-doc"><p><code>error_msg fmt ...</code> is <code>kstr (fun s -> Error (`Msg s)) fmt ...</code></p></div></div><h2 id="formatters"><a href="#formatters" class="anchor"></a>Formatters</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> <span>'a t</span></span><span> = <span><a href="../../ocaml/Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p>The type for formatters of values of type <code>'a</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-flush"><a href="#val-flush" class="anchor"></a><code><span><span class="keyword">val</span> flush : <span><span class="type-var">'a</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>flush</code> has the effect of <code>Format.pp_print_flush</code></p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-nop"><a href="#val-nop" class="anchor"></a><code><span><span class="keyword">val</span> nop : <span><span class="type-var">'a</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>nop</code> formats nothing.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-any"><a href="#val-any" class="anchor"></a><code><span><span class="keyword">val</span> any : <span><span><span>(unit, <a href="../../ocaml/Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a>, unit)</span> <a href="../../ocaml/Stdlib/index.html#type-format">format</a></span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>any fmt ppf v</code> formats any value with the constant format <code>fmt</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-using"><a href="#val-using" class="anchor"></a><code><span><span class="keyword">val</span> using : <span><span>(<span><span class="type-var">'a</span> <span class="arrow">-></span></span> <span class="type-var">'b</span>)</span> <span class="arrow">-></span></span> <span><span><span class="type-var">'b</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>using f pp ppf v</code> ppf ppf <code>(f v)</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-const"><a href="#val-const" class="anchor"></a><code><span><span class="keyword">val</span> const : <span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <span class="arrow">-></span></span> <span><span class="type-var">'b</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>const pp_v v</code> always formats <code>v</code> using <code>pp_v</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-if'"><a href="#val-if'" class="anchor"></a><code><span><span class="keyword">val</span> if' : <span>bool <span class="arrow">-></span></span> <span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>if' bool pp</code> is <code>pp</code> if <code>bool</code> is <code>true</code> and <a href="#val-nop"><code>nop</code></a> otherwise.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-fmt"><a href="#val-fmt" class="anchor"></a><code><span><span class="keyword">val</span> fmt :
|
||
<span><span><span>(<span class="type-var">'a</span>, <a href="../../ocaml/Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a>, unit)</span> <a href="../../ocaml/Stdlib/index.html#type-format">format</a></span> <span class="arrow">-></span></span>
|
||
<span><a href="../../ocaml/Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a> <span class="arrow">-></span></span>
|
||
<span class="type-var">'a</span></span></code></div><div class="spec-doc"><p><code>fmt fmt ppf</code> is <code>pf ppf fmt</code>. If <code>fmt</code> is used with a single non-constant formatting directive, generates a value of type <a href="#type-t"><code>t</code></a>.</p></div></div><h2 id="seps"><a href="#seps" class="anchor"></a>Separators</h2><div class="odoc-spec"><div class="spec value anchored" id="val-cut"><a href="#val-cut" class="anchor"></a><code><span><span class="keyword">val</span> cut : <span><span class="type-var">'a</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>cut</code> has the effect of <code>Format.pp_print_cut</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-sp"><a href="#val-sp" class="anchor"></a><code><span><span class="keyword">val</span> sp : <span><span class="type-var">'a</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>sp</code> has the effect of <code>Format.pp_print_space</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-sps"><a href="#val-sps" class="anchor"></a><code><span><span class="keyword">val</span> sps : <span>int <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>sps n</code> has the effect of <code>Format.pp_print_break</code><code> n 0</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-comma"><a href="#val-comma" class="anchor"></a><code><span><span class="keyword">val</span> comma : <span><span class="type-var">'a</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>comma</code> is <a href="#val-any"><code>Fmt.any</code></a><code> ",@ "</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-semi"><a href="#val-semi" class="anchor"></a><code><span><span class="keyword">val</span> semi : <span><span class="type-var">'a</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>semi</code> is <a href="#val-any"><code>Fmt.any</code></a><code> ";@ "</code>.</p></div></div><h2 id="seq"><a href="#seq" class="anchor"></a>Sequencing</h2><div class="odoc-spec"><div class="spec value anchored" id="val-append"><a href="#val-append" class="anchor"></a><code><span><span class="keyword">val</span> append : <span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>append pp_v0 pp_v1 ppf v</code> is <code>pp_v0 ppf v; pp_v1 ppf v</code>.</p></div></div><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><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>( ++ )</code> is <a href="#val-append"><code>append</code></a>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-concat"><a href="#val-concat" class="anchor"></a><code><span><span class="keyword">val</span> concat : <span><span class="optlabel">?sep</span>:<span>unit <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> list</span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>concat ~sep pps</code> formats a value using the formaters <code>pps</code> and separting each format with <code>sep</code> (defaults to <a href="#val-cut"><code>cut</code></a>).</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-iter"><a href="#val-iter" class="anchor"></a><code><span><span class="keyword">val</span> iter : <span><span class="optlabel">?sep</span>:<span>unit <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span>(<span><span>(<span><span class="type-var">'a</span> <span class="arrow">-></span></span> unit)</span> <span class="arrow">-></span></span> <span><span class="type-var">'b</span> <span class="arrow">-></span></span> unit)</span> <span class="arrow">-></span></span> <span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span class="type-var">'b</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>iter ~sep iter pp_elt</code> formats the iterations of <code>iter</code> over a value using <code>pp_elt</code>. Iterations are separated by <code>sep</code> (defaults to <a href="#val-cut"><code>cut</code></a>).</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-iter_bindings"><a href="#val-iter_bindings" class="anchor"></a><code><span><span class="keyword">val</span> iter_bindings :
|
||
<span><span class="optlabel">?sep</span>:<span>unit <a href="#type-t">t</a></span> <span class="arrow">-></span></span>
|
||
<span><span>(<span><span>(<span><span class="type-var">'a</span> <span class="arrow">-></span></span> <span><span class="type-var">'b</span> <span class="arrow">-></span></span> unit)</span> <span class="arrow">-></span></span> <span><span class="type-var">'c</span> <span class="arrow">-></span></span> unit)</span> <span class="arrow">-></span></span>
|
||
<span><span><span>(<span class="type-var">'a</span> * <span class="type-var">'b</span>)</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span>
|
||
<span><span class="type-var">'c</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>iter_bindings ~sep iter pp_binding</code> formats the iterations of <code>iter</code> over a value using <code>pp_binding</code>. Iterations are separated by <code>sep</code> (defaults to <a href="#val-cut"><code>cut</code></a>).</p></div></div><h2 id="boxes"><a href="#boxes" class="anchor"></a>Boxes</h2><div class="odoc-spec"><div class="spec value anchored" id="val-box"><a href="#val-box" class="anchor"></a><code><span><span class="keyword">val</span> box : <span><span class="optlabel">?indent</span>:int <span class="arrow">-></span></span> <span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>box ~indent pp ppf</code> wraps <code>pp</code> in a pretty-printing box. The box tries to print as much as possible on every line, while emphasizing the box structure (see <code>Format.pp_open_box</code>). Break hints that lead to a new line add <code>indent</code> to the current indentation (defaults to <code>0</code>).</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-hbox"><a href="#val-hbox" class="anchor"></a><code><span><span class="keyword">val</span> hbox : <span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>hbox</code> is like <a href="#val-box"><code>box</code></a> but is a horizontal box: the line is not split in this box (but may be in sub-boxes). See <code>Format.pp_open_hbox</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-vbox"><a href="#val-vbox" class="anchor"></a><code><span><span class="keyword">val</span> vbox : <span><span class="optlabel">?indent</span>:int <span class="arrow">-></span></span> <span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>vbox</code> is like <a href="#val-box"><code>box</code></a> but is a vertical box: every break hint leads to a new line which adds <code>indent</code> to the current indentation (defaults to <code>0</code>). See <code>Format.pp_open_vbox</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-hvbox"><a href="#val-hvbox" class="anchor"></a><code><span><span class="keyword">val</span> hvbox : <span><span class="optlabel">?indent</span>:int <span class="arrow">-></span></span> <span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>hvbox</code> is like <a href="#val-hbox"><code>hbox</code></a> if it fits on a single line, or like <a href="#val-vbox"><code>vbox</code></a> otherwise. See <code>Format.pp_open_hvbox</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-hovbox"><a href="#val-hovbox" class="anchor"></a><code><span><span class="keyword">val</span> hovbox : <span><span class="optlabel">?indent</span>:int <span class="arrow">-></span></span> <span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>hovbox</code> is a condensed <a href="#val-box"><code>box</code></a>. See <code>Format.pp_open_hovbox</code>.</p></div></div><h2 id="bracks"><a href="#bracks" class="anchor"></a>Brackets</h2><div class="odoc-spec"><div class="spec value anchored" id="val-parens"><a href="#val-parens" class="anchor"></a><code><span><span class="keyword">val</span> parens : <span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>parens pp_v ppf</code> is <code>pf "@[<1>(%a)@]" pp_v</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-brackets"><a href="#val-brackets" class="anchor"></a><code><span><span class="keyword">val</span> brackets : <span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>brackets pp_v ppf</code> is <code>pf "@[<1>[%a]@]" pp_v</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-braces"><a href="#val-braces" class="anchor"></a><code><span><span class="keyword">val</span> braces : <span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>braces pp_v ppf</code> is <code>pf "@[<1>{%a}@]" pp_v</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-quote"><a href="#val-quote" class="anchor"></a><code><span><span class="keyword">val</span> quote : <span><span class="optlabel">?mark</span>:string <span class="arrow">-></span></span> <span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>quote ~mark pp_v ppf</code> is <code>pf "@[<1>@<1>%s%a@<1>%s@]" mark pp_v mark</code>, <code>mark</code> defaults to <code>"\""</code>, it is always counted as spanning as single column (this allows for UTF-8 encoded marks).</p></div></div><h2 id="records"><a href="#records" class="anchor"></a>Records</h2><div class="odoc-spec"><div class="spec value anchored" id="val-id"><a href="#val-id" class="anchor"></a><code><span><span class="keyword">val</span> id : <span><span class="type-var">'a</span> <span class="arrow">-></span></span> <span class="type-var">'a</span></span></code></div><div class="spec-doc"><p><code>id</code> is <code>Fun.id</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-field"><a href="#val-field" class="anchor"></a><code><span><span class="keyword">val</span> field :
|
||
<span><span class="optlabel">?label</span>:<span>string <a href="#type-t">t</a></span> <span class="arrow">-></span></span>
|
||
<span><span class="optlabel">?sep</span>:<span>unit <a href="#type-t">t</a></span> <span class="arrow">-></span></span>
|
||
<span>string <span class="arrow">-></span></span>
|
||
<span><span>(<span><span class="type-var">'b</span> <span class="arrow">-></span></span> <span class="type-var">'a</span>)</span> <span class="arrow">-></span></span>
|
||
<span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span>
|
||
<span><span class="type-var">'b</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>field ~label ~sep l prj pp_v</code> pretty prints a labelled field value as <code>pf "@[<1>%a%a%a@]" label l sep () (using prj pp_v)</code>. <code>label</code> defaults to <code>styled `Yellow string</code> and <code>sep</code> to <code>any ":@ "</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-record"><a href="#val-record" class="anchor"></a><code><span><span class="keyword">val</span> record : <span><span class="optlabel">?sep</span>:<span>unit <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> list</span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>record ~sep fields</code> pretty-prints a value using the concatenation of <code>fields</code>, separated by <code>sep</code> (defaults to <code>cut</code>) and framed in a vertical box.</p></div></div><h2 id="stdlib"><a href="#stdlib" class="anchor"></a>Stdlib types</h2><p>Formatters for structures give full control to the client over the formatting process and do not wrap the formatted structures with boxes. Use the <a href="Dump/index.html"><code>Dump</code></a> module to quickly format values for inspection.</p><div class="odoc-spec"><div class="spec value anchored" id="val-bool"><a href="#val-bool" class="anchor"></a><code><span><span class="keyword">val</span> bool : <span>bool <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>bool</code> is <code>Format.pp_print_bool</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-int"><a href="#val-int" class="anchor"></a><code><span><span class="keyword">val</span> int : <span>int <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>int ppf</code> is <code>pf ppf "%d"</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-nativeint"><a href="#val-nativeint" class="anchor"></a><code><span><span class="keyword">val</span> nativeint : <span>nativeint <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>nativeint ppf</code> is <code>pf ppf "%nd"</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-int32"><a href="#val-int32" class="anchor"></a><code><span><span class="keyword">val</span> int32 : <span>int32 <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>int32 ppf</code> is <code>pf ppf "%ld"</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-int64"><a href="#val-int64" class="anchor"></a><code><span><span class="keyword">val</span> int64 : <span>int64 <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>int64 ppf</code> is <code>pf ppf "%Ld"</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-uint"><a href="#val-uint" class="anchor"></a><code><span><span class="keyword">val</span> uint : <span>int <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>uint ppf</code> is <code>pf ppf "%u"</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-unativeint"><a href="#val-unativeint" class="anchor"></a><code><span><span class="keyword">val</span> unativeint : <span>nativeint <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>unativeint ppf</code> is <code>pf ppf "%nu"</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-uint32"><a href="#val-uint32" class="anchor"></a><code><span><span class="keyword">val</span> uint32 : <span>int32 <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>uint32 ppf</code> is <code>pf ppf "%lu"</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-uint64"><a href="#val-uint64" class="anchor"></a><code><span><span class="keyword">val</span> uint64 : <span>int64 <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>uint64 ppf</code> is <code>pf ppf "%Lu"</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-float"><a href="#val-float" class="anchor"></a><code><span><span class="keyword">val</span> float : <span>float <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>float ppf</code> is <code>pf ppf "%g".</code></p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-float_dfrac"><a href="#val-float_dfrac" class="anchor"></a><code><span><span class="keyword">val</span> float_dfrac : <span>int <span class="arrow">-></span></span> <span>float <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>float_dfrac d</code> rounds the float to the <code>d</code>th <em>decimal</em> fractional digit and formats the result with <code>"%g"</code>. Ties are rounded towards positive infinity. The result is only defined for <code>0 <= d <= 16</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-float_dsig"><a href="#val-float_dsig" class="anchor"></a><code><span><span class="keyword">val</span> float_dsig : <span>int <span class="arrow">-></span></span> <span>float <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>float_dsig d</code> rounds the normalized <em>decimal</em> significand of the float to the <code>d</code>th decimal fractional digit and formats the result with <code>"%g"</code>. Ties are rounded towards positive infinity. The result is NaN on infinities and only defined for <code>0 <= d <= 16</code>.</p><p><b>Warning.</b> The current implementation overflows on large <code>d</code> and floats.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-char"><a href="#val-char" class="anchor"></a><code><span><span class="keyword">val</span> char : <span>char <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>char</code> is <code>Format.pp_print_char</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-string"><a href="#val-string" class="anchor"></a><code><span><span class="keyword">val</span> string : <span>string <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>string</code> is <code>Format.pp_print_string</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-buffer"><a href="#val-buffer" class="anchor"></a><code><span><span class="keyword">val</span> buffer : <span><a href="../../ocaml/Stdlib/Buffer/index.html#type-t">Stdlib.Buffer.t</a> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>buffer</code> formats a <code>Buffer.t</code> value's current contents.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-exn"><a href="#val-exn" class="anchor"></a><code><span><span class="keyword">val</span> exn : <span>exn <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>exn</code> formats an exception.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-exn_backtrace"><a href="#val-exn_backtrace" class="anchor"></a><code><span><span class="keyword">val</span> exn_backtrace : <span><span>(exn * <a href="../../ocaml/Stdlib/Printexc/index.html#type-raw_backtrace">Stdlib.Printexc.raw_backtrace</a>)</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>exn_backtrace</code> formats an exception backtrace.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-pair"><a href="#val-pair" class="anchor"></a><code><span><span class="keyword">val</span> pair : <span><span class="optlabel">?sep</span>:<span>unit <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span><span class="type-var">'b</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span>(<span class="type-var">'a</span> * <span class="type-var">'b</span>)</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>pair ~sep pp_fst pp_snd</code> formats a pair. The first and second projection are formatted using <code>pp_fst</code> and <code>pp_snd</code> and are separated by <code>sep</code> (defaults to <a href="#val-cut"><code>cut</code></a>).</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-option"><a href="#val-option" class="anchor"></a><code><span><span class="keyword">val</span> option : <span><span class="optlabel">?none</span>:<span>unit <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span><span class="type-var">'a</span> option</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>option ~none pp_v</code> formats an optional value. The <code>Some</code> case uses <code>pp_v</code> and <code>None</code> uses <code>none</code> (defaults to <a href="#val-nop"><code>nop</code></a>).</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-result"><a href="#val-result" class="anchor"></a><code><span><span class="keyword">val</span> result : <span><span class="label">ok</span>:<span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span class="label">error</span>:<span><span class="type-var">'b</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> <a href="../../ocaml/Stdlib/index.html#type-result">result</a></span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>result ~ok ~error</code> formats a result value using <code>ok</code> for the <code>Ok</code> case and <code>error</code> for the <code>Error</code> case.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-list"><a href="#val-list" class="anchor"></a><code><span><span class="keyword">val</span> list : <span><span class="optlabel">?sep</span>:<span>unit <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span><span class="type-var">'a</span> list</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>list sep pp_v</code> formats list elements. Each element of the list is formatted in order with <code>pp_v</code>. Elements are separated by <code>sep</code> (defaults to <a href="#val-cut"><code>cut</code></a>). If the list is empty, this is <a href="#val-nop"><code>nop</code></a>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-array"><a href="#val-array" class="anchor"></a><code><span><span class="keyword">val</span> array : <span><span class="optlabel">?sep</span>:<span>unit <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span><span class="type-var">'a</span> array</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>array sep pp_v</code> formats array elements. Each element of the array is formatted in order with <code>pp_v</code>. Elements are separated by <code>sep</code> (defaults to <a href="#val-cut"><code>cut</code></a>). If the array is empty, this is <a href="#val-nop"><code>nop</code></a>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-seq"><a href="#val-seq" class="anchor"></a><code><span><span class="keyword">val</span> seq : <span><span class="optlabel">?sep</span>:<span>unit <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span><span class="type-var">'a</span> <a href="../../ocaml/Stdlib/Seq/index.html#type-t">Stdlib.Seq.t</a></span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>seq sep pp_v</code> formats sequence elements. Each element of the sequence is formatted in order with <code>pp_v</code>. Elements are separated by <code>sep</code> (defaults to <a href="#val-cut"><code>cut</code></a>). If the sequence is empty, this is <a href="#val-nop"><code>nop</code></a>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-hashtbl"><a href="#val-hashtbl" class="anchor"></a><code><span><span class="keyword">val</span> hashtbl : <span><span class="optlabel">?sep</span>:<span>unit <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span><span>(<span class="type-var">'a</span> * <span class="type-var">'b</span>)</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span><span>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> <a href="../../ocaml/Stdlib/Hashtbl/index.html#type-t">Stdlib.Hashtbl.t</a></span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>hashtbl ~sep pp_binding</code> formats the bindings of a hash table. Each binding is formatted with <code>pp_binding</code> and bindings are separated by <code>sep</code> (defaults to <a href="#val-cut"><code>cut</code></a>). If the hash table has multiple bindings for a given key, all bindings are formatted, with the most recent binding first. If the hash table is empty, this is <a href="#val-nop"><code>nop</code></a>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-queue"><a href="#val-queue" class="anchor"></a><code><span><span class="keyword">val</span> queue : <span><span class="optlabel">?sep</span>:<span>unit <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span><span class="type-var">'a</span> <a href="../../ocaml/Stdlib/Queue/index.html#type-t">Stdlib.Queue.t</a></span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>queue ~sep pp_v</code> formats queue elements. Each element of the queue is formatted in least recently added order with <code>pp_v</code>. Elements are separated by <code>sep</code> (defaults to <a href="#val-cut"><code>cut</code></a>). If the queue is empty, this is <a href="#val-nop"><code>nop</code></a>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-stack"><a href="#val-stack" class="anchor"></a><code><span><span class="keyword">val</span> stack : <span><span class="optlabel">?sep</span>:<span>unit <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span><span class="type-var">'a</span> <a href="../../ocaml/Stdlib/Stack/index.html#type-t">Stdlib.Stack.t</a></span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>stack ~sep pp_v</code> formats stack elements. Each element of the stack is formatted from top to bottom order with <code>pp_v</code>. Elements are separated by <code>sep</code> (defaults to <a href="#val-cut"><code>cut</code></a>). If the stack is empty, this is <a href="#val-nop"><code>nop</code></a>.</p></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-Dump"><a href="#module-Dump" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Dump/index.html">Dump</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>Formatters for inspecting OCaml values.</p></div></div><h2 id="mgs"><a href="#mgs" class="anchor"></a>Magnitudes</h2><div class="odoc-spec"><div class="spec value anchored" id="val-si_size"><a href="#val-si_size" class="anchor"></a><code><span><span class="keyword">val</span> si_size : <span><span class="label">scale</span>:int <span class="arrow">-></span></span> <span>string <span class="arrow">-></span></span> <span>int <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>si_size ~scale unit</code> formats a non negative integer representing unit <code>unit</code> at scale 10<sup>scale * 3</sup>, depending on its magnitude, using power of 3 <a href="https://www.bipm.org/en/publications/si-brochure/chapter3.html">SI prefixes</a> (i.e. all of them except deca, hector, deci and centi). Only US-ASCII characters are used, <code>µ</code> (10<sup>-6</sup>) is written using <code>u</code>.</p><p><code>scale</code> indicates the scale 10<sup>scale * 3</sup> an integer represents, for example <code>-1</code> for m<code>unit</code> (10<sup>-3</sup>), <code>0</code> for <code>unit</code> (10<sup>0</sup>), <code>1</code> for <code>kunit</code> (10<sup>3</sup>); it must be in the range [<code>-8</code>;<code>8</code>] or <code>Invalid_argument</code> is raised.</p><p>Except at the maximal yotta scale always tries to show three digits of data with trailing fractional zeros omited. Rounds towards positive infinity (over approximates).</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-byte_size"><a href="#val-byte_size" class="anchor"></a><code><span><span class="keyword">val</span> byte_size : <span>int <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>byte_size</code> is <code>si_size ~scale:0 "B"</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-bi_byte_size"><a href="#val-bi_byte_size" class="anchor"></a><code><span><span class="keyword">val</span> bi_byte_size : <span>int <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>bi_byte_size</code> formats a byte size according to its magnitude using <a href="https://en.wikipedia.org/wiki/Binary_prefix">binary prefixes</a> up to pebi bytes (2<sup>15</sup>).</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-uint64_ns_span"><a href="#val-uint64_ns_span" class="anchor"></a><code><span><span class="keyword">val</span> uint64_ns_span : <span>int64 <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>uint64_ns_span</code> formats an <em>unsigned</em> nanosecond time span according to its magnitude using <a href="http://www.bipm.org/en/publications/si-brochure/chapter3.html">SI prefixes</a> on seconds and <a href="http://www.bipm.org/en/publications/si-brochure/table6.html">accepted non-SI units</a>. 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 (IAU). Only US-ASCII characters are used (<code>us</code> is used for <code>µs</code>).</p></div></div><h2 id="binary"><a href="#binary" class="anchor"></a>Binary data</h2><div class="odoc-spec"><div class="spec type anchored" id="type-vec"><a href="#type-vec" class="anchor"></a><code><span><span class="keyword">type</span> <span>'a vec</span></span><span> = int * <span>(<span>int <span class="arrow">-></span></span> <span class="type-var">'a</span>)</span></span></code></div><div class="spec-doc"><p>The type for random addressable, sized sequences. Each <code>(n, f)</code> represents the sequence <code>f 0, ..., f (n - 1)</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-on_bytes"><a href="#val-on_bytes" class="anchor"></a><code><span><span class="keyword">val</span> on_bytes : <span><span><span>char <a href="#type-vec">vec</a></span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span>bytes <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>on_bytes pp</code> is <code>pp</code> adapted to format (entire) <code>bytes</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-on_string"><a href="#val-on_string" class="anchor"></a><code><span><span class="keyword">val</span> on_string : <span><span><span>char <a href="#type-vec">vec</a></span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span>string <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>on_string pp</code> is <code>pp</code> adapted to format (entire) <code>string</code>s.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-ascii"><a href="#val-ascii" class="anchor"></a><code><span><span class="keyword">val</span> ascii : <span><span class="optlabel">?w</span>:int <span class="arrow">-></span></span> <span><span class="optlabel">?subst</span>:<span>unit <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span>unit <span class="arrow">-></span></span> <span><span>char <a href="#type-vec">vec</a></span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>ascii ~w ~subst ()</code> formats character sequences by printing characters in the <em>printable US-ASCII range</em> (<code>[0x20];[0x7E]</code>) as is, and replacing the rest with <code>subst</code> (defaults to <code>fmt "."</code>). <code>w</code> causes the output to be right padded to the size of formatting at least <code>w</code> sequence elements (defaults to <code>0</code>).</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-octets"><a href="#val-octets" class="anchor"></a><code><span><span class="keyword">val</span> octets : <span><span class="optlabel">?w</span>:int <span class="arrow">-></span></span> <span><span class="optlabel">?sep</span>:<span>unit <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span>unit <span class="arrow">-></span></span> <span><span>char <a href="#type-vec">vec</a></span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>octets ~w ~sep ()</code> formats character sequences as hexadecimal digits. It prints groups of successive characters of unspecified length together, separated by <code>sep</code> (defaults to <a href="#val-sp"><code>sp</code></a>). <code>w</code> causes the output to be right padded to the size of formatting at least <code>w</code> sequence elements (defaults to <code>0</code>).</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-addresses"><a href="#val-addresses" class="anchor"></a><code><span><span class="keyword">val</span> addresses : <span><span class="optlabel">?addr</span>:<span>int <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span class="optlabel">?w</span>:int <span class="arrow">-></span></span> <span><span><span><span class="type-var">'a</span> <a href="#type-vec">vec</a></span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span><span class="type-var">'a</span> <a href="#type-vec">vec</a></span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>addresses pp</code> formats sequences by applying <code>pp</code> to consecutive subsequences of length <code>w</code> (defaults to 16). <code>addr</code> formats subsequence offsets (defaults to an unspecified hexadecimal format).</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-hex"><a href="#val-hex" class="anchor"></a><code><span><span class="keyword">val</span> hex : <span><span class="optlabel">?w</span>:int <span class="arrow">-></span></span> <span>unit <span class="arrow">-></span></span> <span><span>char <a href="#type-vec">vec</a></span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>hex ~w ()</code> formats character sequences as traditional hex dumps, matching the output of <em>xxd</em> and forcing line breaks after every <code>w</code> characters (defaults to 16).</p></div></div><h2 id="text"><a href="#text" class="anchor"></a>Words, paragraphs, text and lines</h2><p><b>Note.</b> These functions only work on US-ASCII strings and/or with newlines (<code>'\n'</code>). If you are dealing with UTF-8 strings or different kinds of line endings you should use the pretty-printers from <code>Uuseg_string</code>.</p><p><b>White space.</b> White space is one of the following US-ASCII characters: space <code>' '</code> (<code>0x20</code>), tab <code>'\t'</code> (<code>0x09</code>), newline <code>'\n'</code> (<code>0x0A</code>), vertical tab (<code>0x0B</code>), form feed (<code>0x0C</code>), carriage return <code>'\r'</code> (<code>0x0D</code>).</p><div class="odoc-spec"><div class="spec value anchored" id="val-words"><a href="#val-words" class="anchor"></a><code><span><span class="keyword">val</span> words : <span>string <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>words</code> formats words by suppressing initial and trailing white space and replacing consecutive white space with a single <code>Format.pp_print_space</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-paragraphs"><a href="#val-paragraphs" class="anchor"></a><code><span><span class="keyword">val</span> paragraphs : <span>string <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>paragraphs</code> formats paragraphs by suppressing initial and trailing spaces and newlines, replacing blank lines (a line made only of white space) by a two <code>Format.pp_force_newline</code> and remaining consecutive white space with a single <code>Format.pp_print_space</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-text"><a href="#val-text" class="anchor"></a><code><span><span class="keyword">val</span> text : <span>string <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>text</code> formats text by respectively replacing spaces and newlines in the string with <code>Format.pp_print_space</code> and <code>Format.pp_force_newline</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-lines"><a href="#val-lines" class="anchor"></a><code><span><span class="keyword">val</span> lines : <span>string <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>lines</code> formats lines by replacing newlines (<code>'\n'</code>) in the string with calls to <code>Format.pp_force_newline</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-truncated"><a href="#val-truncated" class="anchor"></a><code><span><span class="keyword">val</span> truncated : <span><span class="label">max</span>:int <span class="arrow">-></span></span> <span>string <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>truncated ~max</code> formats a string using at most <code>max</code> characters. If the string doesn't fit, it is truncated and ended with three consecutive dots which do count towards <code>max</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-text_loc"><a href="#val-text_loc" class="anchor"></a><code><span><span class="keyword">val</span> text_loc : <span><span>(<span>(int * int)</span> * <span>(int * int)</span>)</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>text_loc</code> formats a line-column text range according to <a href="http://www.gnu.org/prep/standards/standards.html#Errors">GNU conventions</a>.</p></div></div><h2 id="hci"><a href="#hci" class="anchor"></a>HCI fragments</h2><div class="odoc-spec"><div class="spec value anchored" id="val-one_of"><a href="#val-one_of" class="anchor"></a><code><span><span class="keyword">val</span> one_of : <span><span class="optlabel">?empty</span>:<span>unit <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span><span class="type-var">'a</span> list</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>one_of ~empty pp_v ppf l</code> formats according to the length of <code>l</code></p><ul><li><code>0</code>, formats <code>empty</code> (defaults to <a href="#val-nop"><code>nop</code></a>).</li><li><code>1</code>, formats the element with <code>pp_v</code>.</li><li><code>2</code>, formats <code>"either %a or %a"</code> with the list elements</li><li><code>n</code>, formats <code>"one of %a, ... or %a"</code> with the list elements</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-did_you_mean"><a href="#val-did_you_mean" class="anchor"></a><code><span><span class="keyword">val</span> did_you_mean :
|
||
<span><span class="optlabel">?pre</span>:<span>unit <a href="#type-t">t</a></span> <span class="arrow">-></span></span>
|
||
<span><span class="optlabel">?post</span>:<span>unit <a href="#type-t">t</a></span> <span class="arrow">-></span></span>
|
||
<span><span class="label">kind</span>:string <span class="arrow">-></span></span>
|
||
<span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span>
|
||
<span><span>(<span class="type-var">'a</span> * <span><span class="type-var">'a</span> list</span>)</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>did_you_mean ~pre kind ~post pp_v</code> formats a faulty value <code>v</code> of kind <code>kind</code> and a list of <code>hints</code> that <code>v</code> could have been mistaken for.</p><p><code>pre</code> defaults to <code>unit "Unknown"</code>, <code>post</code> to <a href="#val-nop"><code>nop</code></a> they surround the faulty value before the "did you mean" part as follows <code>"%a %s %a%a." pre () kind pp_v v post ()</code>. If <code>hints</code> is empty no "did you mean" part is printed.</p></div></div><h2 id="utf8_cond"><a href="#utf8_cond" class="anchor"></a>Conditional UTF-8 formatting</h2><p><b>Note.</b> Since <code>Format</code> is not UTF-8 aware using UTF-8 output may derail the pretty printing process. Use the pretty-printers from <code>Uuseg_string</code> if you are serious about UTF-8 formatting.</p><div class="odoc-spec"><div class="spec value anchored" id="val-if_utf_8"><a href="#val-if_utf_8" class="anchor"></a><code><span><span class="keyword">val</span> if_utf_8 : <span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>if_utf_8 pp_u pp ppf v</code> is:</p><ul><li><code>pp_u ppf v</code> if <code>utf_8 ppf</code> is <code>true</code>.</li><li><code>pp ppf v</code> otherwise.</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-utf_8"><a href="#val-utf_8" class="anchor"></a><code><span><span class="keyword">val</span> utf_8 : <span><a href="../../ocaml/Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a> <span class="arrow">-></span></span> bool</span></code></div><div class="spec-doc"><p><code>utf_8 ppf</code> is <code>true</code> if UTF-8 output is enabled on <code>ppf</code>. If <a href="#val-set_utf_8"><code>set_utf_8</code></a> hasn't been called on <code>ppf</code> this is <code>true</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-set_utf_8"><a href="#val-set_utf_8" class="anchor"></a><code><span><span class="keyword">val</span> set_utf_8 : <span><a href="../../ocaml/Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a> <span class="arrow">-></span></span> <span>bool <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p><code>set_utf_8 ppf b</code> enables or disables conditional UTF-8 formatting on <code>ppf</code>.</p><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <code>Invalid_argument</code> <p>if <code>ppf</code> is <code>Format.str_formatter</code>: it is is always UTF-8 enabled.</p></li></ul></div></div><h2 id="styled"><a href="#styled" class="anchor"></a>Styled formatting</h2><div class="odoc-spec"><div class="spec type anchored" id="type-color"><a href="#type-color" class="anchor"></a><code><span><span class="keyword">type</span> color</span><span> = </span><span>[ </span></code><ol><li id="type-color.Black" class="def variant constructor anchored"><a href="#type-color.Black" class="anchor"></a><code><span>| </span><span>`Black</span></code></li><li id="type-color.Blue" class="def variant constructor anchored"><a href="#type-color.Blue" class="anchor"></a><code><span>| </span><span>`Blue</span></code></li><li id="type-color.Cyan" class="def variant constructor anchored"><a href="#type-color.Cyan" class="anchor"></a><code><span>| </span><span>`Cyan</span></code></li><li id="type-color.Green" class="def variant constructor anchored"><a href="#type-color.Green" class="anchor"></a><code><span>| </span><span>`Green</span></code></li><li id="type-color.Magenta" class="def variant constructor anchored"><a href="#type-color.Magenta" class="anchor"></a><code><span>| </span><span>`Magenta</span></code></li><li id="type-color.Red" class="def variant constructor anchored"><a href="#type-color.Red" class="anchor"></a><code><span>| </span><span>`Red</span></code></li><li id="type-color.White" class="def variant constructor anchored"><a href="#type-color.White" class="anchor"></a><code><span>| </span><span>`White</span></code></li><li id="type-color.Yellow" class="def variant constructor anchored"><a href="#type-color.Yellow" class="anchor"></a><code><span>| </span><span>`Yellow</span></code></li></ol><code><span> ]</span></code></div><div class="spec-doc"><p>The type for colors.</p></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-style"><a href="#type-style" class="anchor"></a><code><span><span class="keyword">type</span> style</span><span> = </span><span>[ </span></code><ol><li id="type-style.None" class="def variant constructor anchored"><a href="#type-style.None" class="anchor"></a><code><span>| </span><span>`None</span></code></li><li id="type-style.Bold" class="def variant constructor anchored"><a href="#type-style.Bold" class="anchor"></a><code><span>| </span><span>`Bold</span></code></li><li id="type-style.Faint" class="def variant constructor anchored"><a href="#type-style.Faint" class="anchor"></a><code><span>| </span><span>`Faint</span></code></li><li id="type-style.Italic" class="def variant constructor anchored"><a href="#type-style.Italic" class="anchor"></a><code><span>| </span><span>`Italic</span></code></li><li id="type-style.Underline" class="def variant constructor anchored"><a href="#type-style.Underline" class="anchor"></a><code><span>| </span><span>`Underline</span></code></li><li id="type-style.Reverse" class="def variant constructor anchored"><a href="#type-style.Reverse" class="anchor"></a><code><span>| </span><span>`Reverse</span></code></li><li id="type-style.Fg" class="def variant constructor anchored"><a href="#type-style.Fg" class="anchor"></a><code><span>| </span><span>`Fg <span class="keyword">of</span> <span>[ <a href="#type-color">color</a> <span><span>| `Hi</span> of <a href="#type-color">color</a></span> ]</span></span></code></li><li id="type-style.Bg" class="def variant constructor anchored"><a href="#type-style.Bg" class="anchor"></a><code><span>| </span><span>`Bg <span class="keyword">of</span> <span>[ <a href="#type-color">color</a> <span><span>| `Hi</span> of <a href="#type-color">color</a></span> ]</span></span></code></li><li id="type-style.color" class="def variant type anchored"><a href="#type-style.color" class="anchor"></a><code><span>| </span><span><a href="#type-color">color</a></span></code></li></ol><code><span> ]</span></code></div><div class="spec-doc"><p>The type for styles:</p><ul><li><code>`None</code> resets the styling.</li><li><code>`Bold</code>, <code>`Faint</code>, <code>`Italic</code>, <code>`Underline</code> and <code>`Reverse</code> are display attributes.</li><li><code>`Fg _</code> is the foreground color or high-intensity color on <code>`Hi _</code>.</li><li><code>`Bg _</code> is the background color or high-intensity color on <code>`Hi _</code>.</li><li><code>#color</code> is the foreground color, <b>deprecated</b> use <code>`Fg #color</code> instead.</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-styled"><a href="#val-styled" class="anchor"></a><code><span><span class="keyword">val</span> styled : <span><a href="#type-style">style</a> <span class="arrow">-></span></span> <span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>styled s pp</code> formats like <code>pp</code> but styled with <code>s</code>.</p></div></div><h3 id="style-rendering-control"><a href="#style-rendering-control" class="anchor"></a>Style rendering control</h3><div class="odoc-spec"><div class="spec type anchored" id="type-style_renderer"><a href="#type-style_renderer" class="anchor"></a><code><span><span class="keyword">type</span> style_renderer</span><span> = </span><span>[ </span></code><ol><li id="type-style_renderer.Ansi_tty" class="def variant constructor anchored"><a href="#type-style_renderer.Ansi_tty" class="anchor"></a><code><span>| </span><span>`Ansi_tty</span></code></li><li id="type-style_renderer.None" class="def variant constructor anchored"><a href="#type-style_renderer.None" class="anchor"></a><code><span>| </span><span>`None</span></code></li></ol><code><span> ]</span></code></div><div class="spec-doc"><p>The type for style renderers.</p><ul><li><code>`Ansi_tty</code>, renders styles using <a href="http://www.ecma-international.org/publications/standards/Ecma-048.htm">ANSI escape sequences</a>.</li><li><code>`None</code>, styled rendering has no effect.</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-style_renderer"><a href="#val-style_renderer" class="anchor"></a><code><span><span class="keyword">val</span> style_renderer : <span><a href="../../ocaml/Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a> <span class="arrow">-></span></span> <a href="#type-style_renderer">style_renderer</a></span></code></div><div class="spec-doc"><p><code>style_renderer ppf</code> is the style renderer used by <code>ppf</code>. If <a href="#val-set_style_renderer"><code>set_style_renderer</code></a> has never been called on <code>ppf</code> this is <code>`None</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-set_style_renderer"><a href="#val-set_style_renderer" class="anchor"></a><code><span><span class="keyword">val</span> set_style_renderer : <span><a href="../../ocaml/Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a> <span class="arrow">-></span></span> <span><a href="#type-style_renderer">style_renderer</a> <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p><code>set_style_renderer ppf r</code> sets the style renderer of <code>ppf</code> to <code>r</code>.</p><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <code>Invalid_argument</code> <p>if <code>ppf</code> is <code>Format.str_formatter</code>: its renderer is always <code>`None</code>.</p></li></ul></div></div><h2 id="stringconverters"><a href="#stringconverters" class="anchor"></a>Converting with string value converters</h2><div class="odoc-spec"><div class="spec value anchored" id="val-of_to_string"><a href="#val-of_to_string" class="anchor"></a><code><span><span class="keyword">val</span> of_to_string : <span><span>(<span><span class="type-var">'a</span> <span class="arrow">-></span></span> string)</span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>of_to_string f ppf v</code> is <code>string ppf (f v)</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-to_to_string"><a href="#val-to_to_string" class="anchor"></a><code><span><span class="keyword">val</span> to_to_string : <span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <span class="arrow">-></span></span> string</span></code></div><div class="spec-doc"><p><code>to_to_string pp_v v</code> is <code>strf "%a" pp_v v</code>.</p></div></div><h2 id="deprecated"><a href="#deprecated" class="anchor"></a>Deprecated</h2><div class="odoc-spec"><div class="spec value anchored" id="val-strf"><a href="#val-strf" class="anchor"></a><code><span><span class="keyword">val</span> strf : <span><span><span>(<span class="type-var">'a</span>, <a href="../../ocaml/Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a>, unit, string)</span> <a href="../../ocaml/Stdlib/index.html#type-format4">format4</a></span> <span class="arrow">-></span></span> <span class="type-var">'a</span></span></code></div><div class="spec-doc"><ul class="at-tags"><li class="deprecated"><span class="at-tag">deprecated</span> <p>use <a href="#val-str"><code>str</code></a> instead.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-kstrf"><a href="#val-kstrf" class="anchor"></a><code><span><span class="keyword">val</span> kstrf :
|
||
<span><span>(<span>string <span class="arrow">-></span></span> <span class="type-var">'a</span>)</span> <span class="arrow">-></span></span>
|
||
<span><span><span>(<span class="type-var">'b</span>, <a href="../../ocaml/Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a>, unit, <span class="type-var">'a</span>)</span> <a href="../../ocaml/Stdlib/index.html#type-format4">format4</a></span> <span class="arrow">-></span></span>
|
||
<span class="type-var">'b</span></span></code></div><div class="spec-doc"><ul class="at-tags"><li class="deprecated"><span class="at-tag">deprecated</span> <p>use <a href="#val-kstr"><code>kstr</code></a> instead.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-strf_like"><a href="#val-strf_like" class="anchor"></a><code><span><span class="keyword">val</span> strf_like :
|
||
<span><a href="../../ocaml/Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a> <span class="arrow">-></span></span>
|
||
<span><span><span>(<span class="type-var">'a</span>, <a href="../../ocaml/Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a>, unit, string)</span> <a href="../../ocaml/Stdlib/index.html#type-format4">format4</a></span> <span class="arrow">-></span></span>
|
||
<span class="type-var">'a</span></span></code></div><div class="spec-doc"><ul class="at-tags"><li class="deprecated"><span class="at-tag">deprecated</span> <p>use <a href="#val-str_like"><code>str_like</code></a> instead.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-always"><a href="#val-always" class="anchor"></a><code><span><span class="keyword">val</span> always : <span><span><span>(unit, <a href="../../ocaml/Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a>, unit)</span> <a href="../../ocaml/Stdlib/index.html#type-format">format</a></span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><ul class="at-tags"><li class="deprecated"><span class="at-tag">deprecated</span> <p>use <a href="#val-any"><code>any</code></a> instead.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-unit"><a href="#val-unit" class="anchor"></a><code><span><span class="keyword">val</span> unit : <span><span><span>(unit, <a href="../../ocaml/Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a>, unit)</span> <a href="../../ocaml/Stdlib/index.html#type-format">format</a></span> <span class="arrow">-></span></span> <span>unit <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><ul class="at-tags"><li class="deprecated"><span class="at-tag">deprecated</span> <p>use <a href="#val-any"><code>any</code></a>.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-prefix"><a href="#val-prefix" class="anchor"></a><code><span><span class="keyword">val</span> prefix : <span><span>unit <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><ul class="at-tags"><li class="deprecated"><span class="at-tag">deprecated</span> <p>use <a href="#val-(++)"><code>(++)</code></a>.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-suffix"><a href="#val-suffix" class="anchor"></a><code><span><span class="keyword">val</span> suffix : <span><span>unit <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><ul class="at-tags"><li class="deprecated"><span class="at-tag">deprecated</span> <p>use <a href="#val-(++)"><code>(++)</code></a>.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-styled_unit"><a href="#val-styled_unit" class="anchor"></a><code><span><span class="keyword">val</span> styled_unit :
|
||
<span><a href="#type-style">style</a> <span class="arrow">-></span></span>
|
||
<span><span><span>(unit, <a href="../../ocaml/Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a>, unit)</span> <a href="../../ocaml/Stdlib/index.html#type-format">format</a></span> <span class="arrow">-></span></span>
|
||
<span>unit <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><ul class="at-tags"><li class="deprecated"><span class="at-tag">deprecated</span> <p>use <code>styled s (any fmt)</code> instead</p></li></ul></div></div><h2 id="nameconv"><a href="#nameconv" class="anchor"></a>Naming conventions</h2><p>Given a type <code>ty</code> use:</p><ul><li><code>pp_ty</code> for a pretty printer that provides full control to the client and does not wrap the formatted value in an enclosing box. See <a href="#stdlib" title="stdlib">these examples</a>.</li><li><code>pp_dump_ty</code> for a pretty printer that provides little control over the pretty-printing process, wraps the rendering in an enclosing box and tries as much as possible to respect the OCaml syntax. These pretty-printers should make it easy to inspect and understand values of the given type, they are mainly used for quick printf debugging and/or toplevel interaction. See <a href="Dump/index.html#stdlib" title="stdlib">these examples</a>.</li></ul><p>If you are in a situation where making a difference between <code>dump_ty</code> and <code>pp_ty</code> doesn't make sense then use <code>pp_ty</code>.</p><p>For a type <code>ty</code> that is the main type of the module (the "<code>M.t</code>" convention) drop the suffix, that is simply use <code>M.pp</code> and <code>M.pp_dump</code>.</p></div></body></html>
|