tiny_httpd/dev/tiny_httpd/Tiny_httpd_server/Route/index.html
2023-02-22 02:18:21 +00:00

2 lines
No EOL
7.7 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

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

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Route (tiny_httpd.Tiny_httpd_server.Route)</title><link rel="stylesheet" href="../../../_odoc_support/odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.2.0"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../_odoc_support/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">tiny_httpd</a> &#x00BB; <a href="../index.html">Tiny_httpd_server</a> &#x00BB; Route</nav><header class="odoc-preamble"><h1>Module <code><span>Tiny_httpd_server.Route</span></code></h1></header><nav class="odoc-toc"><ul><li><a href="#routing">Routing</a></li></ul></nav><div class="odoc-content"><h3 id="routing"><a href="#routing" class="anchor"></a>Routing</h3><p>Basic type-safe routing.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.6</li></ul><div class="odoc-spec"><div class="spec type anchored" id="type-comp"><a href="#type-comp" class="anchor"></a><code><span><span class="keyword">type</span> <span>('a, 'b) comp</span></span></code></div><div class="spec-doc"><p>An atomic component of a path</p></div></div><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, 'b) t</span></span></code></div><div class="spec-doc"><p>A route, composed of path components</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><span>(<span>int <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'a</span>, <span class="type-var">'a</span>)</span> <a href="#type-comp">comp</a></span></span></code></div><div class="spec-doc"><p>Matches an integer.</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><span>(<span>string <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'a</span>, <span class="type-var">'a</span>)</span> <a href="#type-comp">comp</a></span></span></code></div><div class="spec-doc"><p>Matches a string not containing <code>'/'</code> and binds it as is.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-string_urlencoded"><a href="#val-string_urlencoded" class="anchor"></a><code><span><span class="keyword">val</span> string_urlencoded : <span><span>(<span>string <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'a</span>, <span class="type-var">'a</span>)</span> <a href="#type-comp">comp</a></span></span></code></div><div class="spec-doc"><p>Matches a URL-encoded string, and decodes it.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-exact"><a href="#val-exact" class="anchor"></a><code><span><span class="keyword">val</span> exact : <span>string <span class="arrow">&#45;&gt;</span></span> <span><span>(<span class="type-var">'a</span>, <span class="type-var">'a</span>)</span> <a href="#type-comp">comp</a></span></span></code></div><div class="spec-doc"><p><code>exact &quot;s&quot;</code> matches <code>&quot;s&quot;</code> and nothing else.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-return"><a href="#val-return" class="anchor"></a><code><span><span class="keyword">val</span> return : <span><span>(<span class="type-var">'a</span>, <span class="type-var">'a</span>)</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p>Matches the empty path.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-rest_of_path"><a href="#val-rest_of_path" class="anchor"></a><code><span><span class="keyword">val</span> rest_of_path : <span><span>(<span>string <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'a</span>, <span class="type-var">'a</span>)</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p>Matches a string, even containing <code>'/'</code>. This will match the entirety of the remaining route.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.7</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-rest_of_path_urlencoded"><a href="#val-rest_of_path_urlencoded" class="anchor"></a><code><span><span class="keyword">val</span> rest_of_path_urlencoded : <span><span>(<span>string <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'a</span>, <span class="type-var">'a</span>)</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p>Matches a string, even containing <code>'/'</code>, an URL-decode it. This will match the entirety of the remaining route.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.7</li></ul></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>(<span class="type-var">'a</span>, <span class="type-var">'b</span>)</span> <a href="#type-comp">comp</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span><span>(<span class="type-var">'b</span>, <span class="type-var">'c</span>)</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span>(<span class="type-var">'a</span>, <span class="type-var">'c</span>)</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p><code>comp / route</code> matches <code>&quot;foo/bar/…&quot;</code> iff <code>comp</code> matches <code>&quot;foo&quot;</code>, and <code>route</code> matches <code>&quot;bar/…&quot;</code>.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-exact_path"><a href="#val-exact_path" class="anchor"></a><code><span><span class="keyword">val</span> exact_path : <span>string <span class="arrow">&#45;&gt;</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">&#45;&gt;</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>exact_path &quot;foo/bar/...&quot; r</code> is equivalent to <code>exact &quot;foo&quot; @/ exact &quot;bar&quot; @/ ... @/ r</code></p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.11 *</li></ul></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><span class="xref-unresolved">Stdlib</span>.Format.formatter <span class="arrow">&#45;&gt;</span></span> <span><span><span>(<span class="type-var">_</span>, <span class="type-var">_</span>)</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Print the route.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.7</li></ul></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><span><span>(<span class="type-var">_</span>, <span class="type-var">_</span>)</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> string</span></code></div><div class="spec-doc"><p>Print the route.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.7</li></ul></div></div></div></body></html>