mirror of
https://github.com/c-cube/linol.git
synced 2025-12-07 19:55:44 -05:00
12 lines
18 KiB
HTML
12 lines
18 KiB
HTML
<!DOCTYPE html>
|
||
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Result (lsp.Lsp.Import.Result)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../../../_odoc-theme/odoc.css"/><meta name="generator" content="odoc 2.4.2"/><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">lsp</a> » <a href="../../index.html">Lsp</a> » <a href="../index.html">Import</a> » Result</nav><header class="odoc-preamble"><h1>Module <code><span>Import.Result</span></code></h1></header><div class="odoc-content"><div class="odoc-include"><details open="open"><summary class="spec include"><code><span><span class="keyword">include</span> <span class="keyword">module</span> <span class="keyword">type</span> <span class="keyword">of</span> <span class="keyword">struct</span> <span class="keyword">include</span> <a href="../../../../ocaml/Stdlib/Result/index.html">Stdlib.Result</a> <span class="keyword">end</span></span></code></summary><h2 id="results"><a href="#results" class="anchor"></a>Results</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, 'e) t</span></span><span> = <span><span>(<span class="type-var">'a</span>, <span class="type-var">'e</span>)</span> <a href="../../../../ocaml/Stdlib/index.html#type-result">result</a></span></span><span> = </span></code><ol><li id="type-t.Ok" class="def variant constructor anchored"><a href="#type-t.Ok" class="anchor"></a><code><span>| </span><span><span class="constructor">Ok</span> <span class="keyword">of</span> <span class="type-var">'a</span></span></code></li><li id="type-t.Error" class="def variant constructor anchored"><a href="#type-t.Error" class="anchor"></a><code><span>| </span><span><span class="constructor">Error</span> <span class="keyword">of</span> <span class="type-var">'e</span></span></code></li></ol></div><div class="spec-doc"><p>The type for result values. Either a value <code>Ok v</code> or an error <code>Error e</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-ok"><a href="#val-ok" class="anchor"></a><code><span><span class="keyword">val</span> ok : <span><span class="type-var">'a</span> <span class="arrow">-></span></span> <span><span>(<span class="type-var">'a</span>, <span class="type-var">'e</span>)</span> <a href="../../../../ocaml/Stdlib/index.html#type-result">result</a></span></span></code></div><div class="spec-doc"><p><code>ok v</code> is <code>Ok v</code>.</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 class="type-var">'e</span> <span class="arrow">-></span></span> <span><span>(<span class="type-var">'a</span>, <span class="type-var">'e</span>)</span> <a href="../../../../ocaml/Stdlib/index.html#type-result">result</a></span></span></code></div><div class="spec-doc"><p><code>error e</code> is <code>Error e</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-value"><a href="#val-value" class="anchor"></a><code><span><span class="keyword">val</span> value : <span><span><span>(<span class="type-var">'a</span>, <span class="type-var">'e</span>)</span> <a href="../../../../ocaml/Stdlib/index.html#type-result">result</a></span> <span class="arrow">-></span></span> <span><span class="label">default</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>value r ~default</code> is <code>v</code> if <code>r</code> is <code>Ok v</code> and <code>default</code> otherwise.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-get_ok"><a href="#val-get_ok" class="anchor"></a><code><span><span class="keyword">val</span> get_ok : <span><span><span>(<span class="type-var">'a</span>, <span class="type-var">'e</span>)</span> <a href="../../../../ocaml/Stdlib/index.html#type-result">result</a></span> <span class="arrow">-></span></span> <span class="type-var">'a</span></span></code></div><div class="spec-doc"><p><code>get_ok r</code> is <code>v</code> if <code>r</code> is <code>Ok v</code> and raise otherwise.</p><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <code>Invalid_argument</code> <p>if <code>r</code> is <code>Error _</code>.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-get_error"><a href="#val-get_error" class="anchor"></a><code><span><span class="keyword">val</span> get_error : <span><span><span>(<span class="type-var">'a</span>, <span class="type-var">'e</span>)</span> <a href="../../../../ocaml/Stdlib/index.html#type-result">result</a></span> <span class="arrow">-></span></span> <span class="type-var">'e</span></span></code></div><div class="spec-doc"><p><code>get_error r</code> is <code>e</code> if <code>r</code> is <code>Error e</code> and raise otherwise.</p><ul class="at-tags"><li class="raises"><span class="at-tag">raises</span> <code>Invalid_argument</code> <p>if <code>r</code> is <code>Ok _</code>.</p></li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-bind"><a href="#val-bind" class="anchor"></a><code><span><span class="keyword">val</span> bind : <span><span><span>(<span class="type-var">'a</span>, <span class="type-var">'e</span>)</span> <a href="../../../../ocaml/Stdlib/index.html#type-result">result</a></span> <span class="arrow">-></span></span> <span><span>(<span><span class="type-var">'a</span> <span class="arrow">-></span></span> <span><span>(<span class="type-var">'b</span>, <span class="type-var">'e</span>)</span> <a href="../../../../ocaml/Stdlib/index.html#type-result">result</a></span>)</span> <span class="arrow">-></span></span> <span><span>(<span class="type-var">'b</span>, <span class="type-var">'e</span>)</span> <a href="../../../../ocaml/Stdlib/index.html#type-result">result</a></span></span></code></div><div class="spec-doc"><p><code>bind r f</code> is <code>f v</code> if <code>r</code> is <code>Ok v</code> and <code>r</code> if <code>r</code> is <code>Error _</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-join"><a href="#val-join" class="anchor"></a><code><span><span class="keyword">val</span> join : <span><span><span>(<span><span>(<span class="type-var">'a</span>, <span class="type-var">'e</span>)</span> <a href="../../../../ocaml/Stdlib/index.html#type-result">result</a></span>, <span class="type-var">'e</span>)</span> <a href="../../../../ocaml/Stdlib/index.html#type-result">result</a></span> <span class="arrow">-></span></span> <span><span>(<span class="type-var">'a</span>, <span class="type-var">'e</span>)</span> <a href="../../../../ocaml/Stdlib/index.html#type-result">result</a></span></span></code></div><div class="spec-doc"><p><code>join rr</code> is <code>r</code> if <code>rr</code> is <code>Ok r</code> and <code>rr</code> if <code>rr</code> is <code>Error _</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-map"><a href="#val-map" class="anchor"></a><code><span><span class="keyword">val</span> map : <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>(<span class="type-var">'a</span>, <span class="type-var">'e</span>)</span> <a href="../../../../ocaml/Stdlib/index.html#type-result">result</a></span> <span class="arrow">-></span></span> <span><span>(<span class="type-var">'b</span>, <span class="type-var">'e</span>)</span> <a href="../../../../ocaml/Stdlib/index.html#type-result">result</a></span></span></code></div><div class="spec-doc"><p><code>map f r</code> is <code>Ok (f v)</code> if <code>r</code> is <code>Ok v</code> and <code>r</code> if <code>r</code> is <code>Error _</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-map_error"><a href="#val-map_error" class="anchor"></a><code><span><span class="keyword">val</span> map_error : <span><span>(<span><span class="type-var">'e</span> <span class="arrow">-></span></span> <span class="type-var">'f</span>)</span> <span class="arrow">-></span></span> <span><span><span>(<span class="type-var">'a</span>, <span class="type-var">'e</span>)</span> <a href="../../../../ocaml/Stdlib/index.html#type-result">result</a></span> <span class="arrow">-></span></span> <span><span>(<span class="type-var">'a</span>, <span class="type-var">'f</span>)</span> <a href="../../../../ocaml/Stdlib/index.html#type-result">result</a></span></span></code></div><div class="spec-doc"><p><code>map_error f r</code> is <code>Error (f e)</code> if <code>r</code> is <code>Error e</code> and <code>r</code> if <code>r</code> is <code>Ok _</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-fold"><a href="#val-fold" class="anchor"></a><code><span><span class="keyword">val</span> fold : <span><span class="label">ok</span>:<span>(<span><span class="type-var">'a</span> <span class="arrow">-></span></span> <span class="type-var">'c</span>)</span> <span class="arrow">-></span></span> <span><span class="label">error</span>:<span>(<span><span class="type-var">'e</span> <span class="arrow">-></span></span> <span class="type-var">'c</span>)</span> <span class="arrow">-></span></span> <span><span><span>(<span class="type-var">'a</span>, <span class="type-var">'e</span>)</span> <a href="../../../../ocaml/Stdlib/index.html#type-result">result</a></span> <span class="arrow">-></span></span> <span class="type-var">'c</span></span></code></div><div class="spec-doc"><p><code>fold ~ok ~error r</code> is <code>ok v</code> if <code>r</code> is <code>Ok v</code> and <code>error e</code> if <code>r</code> is <code>Error e</code>.</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>(<span><span class="type-var">'a</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">'e</span>)</span> <a href="../../../../ocaml/Stdlib/index.html#type-result">result</a></span> <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p><code>iter f r</code> is <code>f v</code> if <code>r</code> is <code>Ok v</code> and <code>()</code> otherwise.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-iter_error"><a href="#val-iter_error" class="anchor"></a><code><span><span class="keyword">val</span> iter_error : <span><span>(<span><span class="type-var">'e</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">'e</span>)</span> <a href="../../../../ocaml/Stdlib/index.html#type-result">result</a></span> <span class="arrow">-></span></span> unit</span></code></div><div class="spec-doc"><p><code>iter_error f r</code> is <code>f e</code> if <code>r</code> is <code>Error e</code> and <code>()</code> otherwise.</p></div></div><h2 id="preds"><a href="#preds" class="anchor"></a>Predicates and comparisons</h2><div class="odoc-spec"><div class="spec value anchored" id="val-is_ok"><a href="#val-is_ok" class="anchor"></a><code><span><span class="keyword">val</span> is_ok : <span><span><span>(<span class="type-var">'a</span>, <span class="type-var">'e</span>)</span> <a href="../../../../ocaml/Stdlib/index.html#type-result">result</a></span> <span class="arrow">-></span></span> bool</span></code></div><div class="spec-doc"><p><code>is_ok r</code> is <code>true</code> if and only if <code>r</code> is <code>Ok _</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-is_error"><a href="#val-is_error" class="anchor"></a><code><span><span class="keyword">val</span> is_error : <span><span><span>(<span class="type-var">'a</span>, <span class="type-var">'e</span>)</span> <a href="../../../../ocaml/Stdlib/index.html#type-result">result</a></span> <span class="arrow">-></span></span> bool</span></code></div><div class="spec-doc"><p><code>is_error r</code> is <code>true</code> if and only if <code>r</code> is <code>Error _</code>.</p></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><span class="label">ok</span>:<span>(<span><span class="type-var">'a</span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <span class="arrow">-></span></span> bool)</span> <span class="arrow">-></span></span>
|
||
<span><span class="label">error</span>:<span>(<span><span class="type-var">'e</span> <span class="arrow">-></span></span> <span><span class="type-var">'e</span> <span class="arrow">-></span></span> bool)</span> <span class="arrow">-></span></span>
|
||
<span><span><span>(<span class="type-var">'a</span>, <span class="type-var">'e</span>)</span> <a href="../../../../ocaml/Stdlib/index.html#type-result">result</a></span> <span class="arrow">-></span></span>
|
||
<span><span><span>(<span class="type-var">'a</span>, <span class="type-var">'e</span>)</span> <a href="../../../../ocaml/Stdlib/index.html#type-result">result</a></span> <span class="arrow">-></span></span>
|
||
bool</span></code></div><div class="spec-doc"><p><code>equal ~ok ~error r0 r1</code> tests equality of <code>r0</code> and <code>r1</code> using <code>ok</code> and <code>error</code> to respectively compare values wrapped by <code>Ok _</code> and <code>Error _</code>.</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><span class="label">ok</span>:<span>(<span><span class="type-var">'a</span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <span class="arrow">-></span></span> int)</span> <span class="arrow">-></span></span>
|
||
<span><span class="label">error</span>:<span>(<span><span class="type-var">'e</span> <span class="arrow">-></span></span> <span><span class="type-var">'e</span> <span class="arrow">-></span></span> int)</span> <span class="arrow">-></span></span>
|
||
<span><span><span>(<span class="type-var">'a</span>, <span class="type-var">'e</span>)</span> <a href="../../../../ocaml/Stdlib/index.html#type-result">result</a></span> <span class="arrow">-></span></span>
|
||
<span><span><span>(<span class="type-var">'a</span>, <span class="type-var">'e</span>)</span> <a href="../../../../ocaml/Stdlib/index.html#type-result">result</a></span> <span class="arrow">-></span></span>
|
||
int</span></code></div><div class="spec-doc"><p><code>compare ~ok ~error r0 r1</code> totally orders <code>r0</code> and <code>r1</code> using <code>ok</code> and <code>error</code> to respectively compare values wrapped by <code>Ok _ </code> and <code>Error _</code>. <code>Ok _</code> values are smaller than <code>Error _</code> values.</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_option"><a href="#val-to_option" class="anchor"></a><code><span><span class="keyword">val</span> to_option : <span><span><span>(<span class="type-var">'a</span>, <span class="type-var">'e</span>)</span> <a href="../../../../ocaml/Stdlib/index.html#type-result">result</a></span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> option</span></span></code></div><div class="spec-doc"><p><code>to_option r</code> is <code>r</code> as an option, mapping <code>Ok v</code> to <code>Some v</code> and <code>Error _</code> to <code>None</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-to_list"><a href="#val-to_list" class="anchor"></a><code><span><span class="keyword">val</span> to_list : <span><span><span>(<span class="type-var">'a</span>, <span class="type-var">'e</span>)</span> <a href="../../../../ocaml/Stdlib/index.html#type-result">result</a></span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> list</span></span></code></div><div class="spec-doc"><p><code>to_list r</code> is <code>[v]</code> if <code>r</code> is <code>Ok v</code> and <code>[]</code> otherwise.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-to_seq"><a href="#val-to_seq" class="anchor"></a><code><span><span class="keyword">val</span> to_seq : <span><span><span>(<span class="type-var">'a</span>, <span class="type-var">'e</span>)</span> <a href="../../../../ocaml/Stdlib/index.html#type-result">result</a></span> <span class="arrow">-></span></span> <span><span class="type-var">'a</span> <a href="../../../../ocaml/Stdlib/Seq/index.html#type-t">Stdlib.Seq.t</a></span></span></code></div><div class="spec-doc"><p><code>to_seq r</code> is <code>r</code> as a sequence. <code>Ok v</code> is the singleton sequence containing <code>v</code> and <code>Error _</code> is the empty sequence.</p></div></div></details></div><div class="odoc-spec"><div class="spec module anchored" id="module-O"><a href="#module-O" class="anchor"></a><code><span><span class="keyword">module</span> <a href="O/index.html">O</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div></div></div></body></html>
|