mirror of
https://github.com/ocaml-tracing/ocaml-opentelemetry.git
synced 2026-03-09 12:23:32 -04:00
5 lines
11 KiB
HTML
5 lines
11 KiB
HTML
<!DOCTYPE html>
|
||
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Sexp (sexplib0.Sexplib0.Sexp)</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> » <a href="../../index.html">sexplib0</a> » <a href="../index.html">Sexplib0</a> » Sexp</nav><header class="odoc-preamble"><h1>Module <code><span>Sexplib0.Sexp</span></code></h1><p>Type of S-expressions</p></header><div class="odoc-tocs"><nav class="odoc-toc odoc-local-toc"><ul><li><a href="#helpers">Helpers</a></li><li><a href="#defaults">Defaults</a></li><li><a href="#pretty-printing-of-s-expressions">Pretty printing of S-expressions</a></li><li><a href="#conversion-to-strings">Conversion to strings</a></li><li><a href="#styles">Styles</a></li></ul></nav></div><div class="odoc-content"><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> = </span></code><ol><li id="type-t.Atom" class="def variant constructor anchored"><a href="#type-t.Atom" class="anchor"></a><code><span>| </span><span><span class="constructor">Atom</span> <span class="keyword">of</span> string</span></code></li><li id="type-t.List" class="def variant constructor anchored"><a href="#type-t.List" class="anchor"></a><code><span>| </span><span><span class="constructor">List</span> <span class="keyword">of</span> <span><a href="#type-t">t</a> list</span></span></code></li></ol></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-t_of_sexp"><a href="#val-t_of_sexp" class="anchor"></a><code><span><span class="keyword">val</span> t_of_sexp : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <a href="#type-t">t</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-sexp_of_t"><a href="#val-sexp_of_t" class="anchor"></a><code><span><span class="keyword">val</span> sexp_of_t : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> <a href="#type-t">t</a></span></code></div></div><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="#type-t">t</a> <span class="arrow">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></span></span> bool</span></code></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="#type-t">t</a> <span class="arrow">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></span></span> int</span></code></div></div><div class="odoc-spec"><div class="spec exception anchored" id="exception-Not_found_s"><a href="#exception-Not_found_s" class="anchor"></a><code><span><span class="keyword">exception</span> </span><span><span class="exception">Not_found_s</span> <span class="keyword">of</span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p><code>Not_found_s</code> is used by functions that historically raised <code>Not_found</code>, to allow them to raise an exception that contains an informative error message (as a sexp), while still having an exception that can be distinguished from other exceptions.</p></div></div><div class="odoc-spec"><div class="spec exception anchored" id="exception-Of_sexp_error"><a href="#exception-Of_sexp_error" class="anchor"></a><code><span><span class="keyword">exception</span> </span><span><span class="exception">Of_sexp_error</span> <span class="keyword">of</span> exn * <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p><code>Of_sexp_error (exn, sexp)</code> the exception raised when an S-expression could not be successfully converted to an OCaml-value.</p></div></div><h2 id="helpers"><a href="#helpers" class="anchor"></a>Helpers</h2><div class="odoc-spec"><div class="spec value anchored" id="val-message"><a href="#val-message" class="anchor"></a><code><span><span class="keyword">val</span> message : <span>string <span class="arrow">-></span></span> <span><span><span>(string * <a href="#type-t">t</a>)</span> list</span> <span class="arrow">-></span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p>Helper to build nice s-expressions for error messages. It imitates the behavior of <code>[%message ...]</code> from the ppx_sexp_message rewriter.</p><p><code>message name key_values</code> produces a s-expression list starting with atom <code>name</code> and followed by list of size 2 of the form <code>(key value)</code>. When the key is the empty string, <code>value</code> is used directly instead as for <code>[%message]</code>.</p><p>For instance the following code:</p><pre class="language-ocaml"><code> Sexp.message "error"
|
||
[ "x", sexp_of_int 42
|
||
; "" , sexp_of_exn Exit
|
||
]</code></pre><p>produces the s-expression:</p><pre class="language-ocaml"><code> (error (x 42) Exit)</code></pre></div></div><h2 id="defaults"><a href="#defaults" class="anchor"></a>Defaults</h2><div class="odoc-spec"><div class="spec value anchored" id="val-default_indent"><a href="#val-default_indent" class="anchor"></a><code><span><span class="keyword">val</span> default_indent : <span>int <a href="../../../ocaml/Stdlib/index.html#type-ref">ref</a></span></span></code></div><div class="spec-doc"><p><code>default_indent</code> reference to default indentation level for human-readable conversions.</p><p>Initialisation value: 2.</p></div></div><h2 id="pretty-printing-of-s-expressions"><a href="#pretty-printing-of-s-expressions" class="anchor"></a>Pretty printing of S-expressions</h2><div class="odoc-spec"><div class="spec value anchored" id="val-pp_hum"><a href="#val-pp_hum" class="anchor"></a><code><span><span class="keyword">val</span> pp_hum : <span><a href="../../../ocaml/Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a> <span class="arrow">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p><code>pp_hum ppf sexp</code> outputs S-expression <code>sexp</code> to formatter <code>ppf</code> in human readable form.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-pp_hum_indent"><a href="#val-pp_hum_indent" class="anchor"></a><code><span><span class="keyword">val</span> pp_hum_indent : <span>int <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><a href="#type-t">t</a> <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p><code>pp_hum_indent n ppf sexp</code> outputs S-expression <code>sexp</code> to formatter <code>ppf</code> in human readable form and indentation level <code>n</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-pp_mach"><a href="#val-pp_mach" class="anchor"></a><code><span><span class="keyword">val</span> pp_mach : <span><a href="../../../ocaml/Stdlib/Format/index.html#type-formatter">Stdlib.Format.formatter</a> <span class="arrow">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p><code>pp_mach ppf sexp</code> outputs S-expression <code>sexp</code> to formatter <code>ppf</code> in machine readable (i.e. most compact) form.</p></div></div><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">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p>Same as <code>pp_mach</code>.</p></div></div><h2 id="conversion-to-strings"><a href="#conversion-to-strings" class="anchor"></a>Conversion to strings</h2><div class="odoc-spec"><div class="spec value anchored" id="val-to_string_hum"><a href="#val-to_string_hum" class="anchor"></a><code><span><span class="keyword">val</span> to_string_hum : <span><span class="optlabel">?indent</span>:int <span class="arrow">-></span></span> <span><a href="#type-t">t</a> <span class="arrow">-></span></span> string</span></code></div><div class="spec-doc"><p><code>to_string_hum ?indent sexp</code> converts S-expression <code>sexp</code> to a string in human readable form with indentation level <code>indent</code>.</p><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">indent</span> <p>default = <code>!default_indent</code></p></li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-to_string_mach"><a href="#val-to_string_mach" class="anchor"></a><code><span><span class="keyword">val</span> to_string_mach : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> string</span></code></div><div class="spec-doc"><p><code>to_string_mach sexp</code> converts S-expression <code>sexp</code> to a string in machine readable (i.e. most compact) form.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-to_string"><a href="#val-to_string" class="anchor"></a><code><span><span class="keyword">val</span> to_string : <span><a href="#type-t">t</a> <span class="arrow">-></span></span> string</span></code></div><div class="spec-doc"><p>Same as <code>to_string_mach</code>.</p></div></div><h2 id="styles"><a href="#styles" class="anchor"></a>Styles</h2><div class="odoc-spec"><div class="spec value anchored" id="val-of_float_style"><a href="#val-of_float_style" class="anchor"></a><code><span><span class="keyword">val</span> of_float_style : <span><span>[ `Underscores <span>| `No_underscores</span> ]</span> <a href="../../../ocaml/Stdlib/index.html#type-ref">ref</a></span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-of_int_style"><a href="#val-of_int_style" class="anchor"></a><code><span><span class="keyword">val</span> of_int_style : <span><span>[ `Underscores <span>| `No_underscores</span> ]</span> <a href="../../../ocaml/Stdlib/index.html#type-ref">ref</a></span></span></code></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-Private"><a href="#module-Private" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Private/index.html">Private</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div></div></div></body></html>
|