Skip to content

Commit

Permalink
formatting
Browse files Browse the repository at this point in the history
  • Loading branch information
bikallem committed Jul 24, 2021
1 parent ab489bd commit 351c0e0
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 3 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Http_multipart_formdata (http-multipart-formdata.Http_multipart_formdata)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.0.0-beta4-59-g244b5317d"/><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">http-multipart-formdata</a> &#x00BB; Http_multipart_formdata</nav><header class="odoc-preamble"><h1>Module <code><span>Http_multipart_formdata</span></code></h1><p><code>Http_multipart_formdata</code> is a non-blocking, streaming HTTP multipart formdata parser. Its design is based on two main ideas:</p><ul><li>The parser should stream the results as soon as possible in a non-buffered, non-backtracking manner; and</li><li>The parser input must be non-blocking and incremental in nature.</li></ul><p>The parser implements HTTP <code>multipart/form-data</code> standard as defined in <a href="https://tools.ietf.org/html/rfc7578">RFC 7578</a>.</p></header><nav class="odoc-toc"><ul><li><a href="#types">Types</a></li><li><a href="#mulipart-boundary-parser">Mulipart Boundary parser</a></li><li><a href="#multipart-reader">Multipart Reader</a></li><li><a href="#part-header">Part header</a></li><li><a href="#pretty-printers">Pretty Printers</a></li></ul></nav><div class="odoc-content"><h3 id="types"><a href="#types" class="anchor"></a>Types</h3><div class="odoc-spec"><div class="spec type" id="type-reader" class="anchored"><a href="#type-reader" class="anchor"></a><code><span><span class="keyword">type</span> reader</span></code></div><div class="spec-doc"><p><code>reader</code> represents a HTTP multipart formdata reader.</p></div></div><div class="odoc-spec"><div class="spec type" id="type-read" class="anchored"><a href="#type-read" class="anchor"></a><code><span><span class="keyword">and</span> read</span><span> = </span><span>[ </span></code><table><tr id="type-read.End" class="anchored"><td class="def constructor"><a href="#type-read.End" class="anchor"></a><code><span>| </span></code><code><span>`End</span></code></td><td class="def-doc"><span class="comment-delim">(*</span><p>The reader has completed reading.</p><span class="comment-delim">*)</span></td></tr><tr id="type-read.Header" class="anchored"><td class="def constructor"><a href="#type-read.Header" class="anchor"></a><code><span>| </span></code><code><span>`Header <span class="keyword">of</span> <a href="#type-part_header">part_header</a></span></code></td><td class="def-doc"><span class="comment-delim">(*</span><p>Multipart part header data.</p><span class="comment-delim">*)</span></td></tr><tr id="type-read.Body" class="anchored"><td class="def constructor"><a href="#type-read.Body" class="anchor"></a><code><span>| </span></code><code><span>`Body <span class="keyword">of</span> <span class="xref-unresolved">Cstruct</span>.t</span></code></td><td class="def-doc"><span class="comment-delim">(*</span><p>Multipart part body data.</p><span class="comment-delim">*)</span></td></tr><tr id="type-read.Body_end" class="anchored"><td class="def constructor"><a href="#type-read.Body_end" class="anchor"></a><code><span>| </span></code><code><span>`Body_end</span></code></td><td class="def-doc"><span class="comment-delim">(*</span><p><code>reader</code> has completed reading the Multipart body data.</p><span class="comment-delim">*)</span></td></tr><tr id="type-read.Awaiting_input" class="anchored"><td class="def constructor"><a href="#type-read.Awaiting_input" class="anchor"></a><code><span>| </span></code><code><span>`Awaiting_input <span class="keyword">of</span> <span><span>[ <span>`Cstruct of <span class="xref-unresolved">Cstruct</span>.t</span> <span>| `Eof</span> ]</span> <span class="arrow">&#45;&gt;</span></span> <a href="#type-read">read</a></span></code></td><td class="def-doc"><span class="comment-delim">(*</span><p>The reader is waiting for it to be provided with input data. This is only returned when <code>`Incremental</code> is chosen as <a href="#type-input"><code>input</code></a>.</p><span class="comment-delim">*)</span></td></tr><tr id="type-read.Error" class="anchored"><td class="def constructor"><a href="#type-read.Error" class="anchor"></a><code><span>| </span></code><code><span>`Error <span class="keyword">of</span> string</span></code></td></tr></table><code><span> ]</span></code></div><div class="spec-doc"><p><code>read</code> represents both the current state and data read by a <a href="#type-reader"><code>reader</code></a>.</p><p>Represents an error in <a href="#type-input"><code>input</code></a> data.</p></div></div><div class="odoc-spec"><div class="spec type" id="type-input" class="anchored"><a href="#type-input" class="anchor"></a><code><span><span class="keyword">and</span> input</span><span> = </span><span>[ </span></code><table><tr id="type-input.Cstruct" class="anchored"><td class="def constructor"><a href="#type-input.Cstruct" class="anchor"></a><code><span>| </span></code><code><span>`Cstruct <span class="keyword">of</span> <span class="xref-unresolved">Cstruct</span>.t</span></code></td><td class="def-doc"><span class="comment-delim">(*</span><p>A bigstring input.</p><span class="comment-delim">*)</span></td></tr><tr id="type-input.Incremental" class="anchored"><td class="def constructor"><a href="#type-input.Incremental" class="anchor"></a><code><span>| </span></code><code><span>`Incremental</span></code></td><td class="def-doc"><span class="comment-delim">(*</span><p>The caller of the library periodically provides input to the parser.</p><span class="comment-delim">*)</span></td></tr></table><code><span> ]</span></code></div></div><div class="odoc-spec"><div class="spec type" id="type-part_header" class="anchored"><a href="#type-part_header" class="anchor"></a><code><span><span class="keyword">and</span> part_header</span></code></div><div class="spec-doc"><p>Represents a parsed multipart part header data.</p></div></div><div class="odoc-spec"><div class="spec type" id="type-boundary" class="anchored"><a href="#type-boundary" class="anchor"></a><code><span><span class="keyword">and</span> boundary</span></code></div><div class="spec-doc"><p>Represents the multipart boundary value.</p></div></div><h3 id="mulipart-boundary-parser"><a href="#mulipart-boundary-parser" class="anchor"></a>Mulipart Boundary parser</h3><div class="odoc-spec"><div class="spec value" id="val-boundary" class="anchored"><a href="#val-boundary" class="anchor"></a><code><span><span class="keyword">val</span> boundary : <span>string <span class="arrow">&#45;&gt;</span></span> <span><span>(<a href="#type-boundary">boundary</a>, string)</span> <span class="xref-unresolved">Stdlib</span>.result</span></span></code></div><div class="spec-doc"><p><code>boundary content_type</code> parses <code>content_type</code> to extract <a href="#type-boundary"><code>boundary</code></a> value. <code>content_type</code> is the HTTP request <code>Content-Type</code> header value.</p><pre><code>let content_type =
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Http_multipart_formdata (http-multipart-formdata.Http_multipart_formdata)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc 2.0.0-beta4-59-g244b5317d"/><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">http-multipart-formdata</a> &#x00BB; Http_multipart_formdata</nav><header class="odoc-preamble"><h1>Module <code><span>Http_multipart_formdata</span></code></h1><p><code>Http_multipart_formdata</code> is a non-blocking, streaming HTTP multipart formdata parser. Its design is based on two main ideas:</p><ul><li>The parser should stream the results as soon as possible in a non-buffered, non-backtracking manner; and</li><li>The parser input must be non-blocking and incremental in nature.</li></ul><p>The parser implements HTTP <code>multipart/form-data</code> standard as defined in <a href="https://tools.ietf.org/html/rfc7578">RFC 7578</a>.</p></header><nav class="odoc-toc"><ul><li><a href="#types">Types</a></li><li><a href="#mulipart-boundary-parser">Mulipart Boundary parser</a></li><li><a href="#multipart-reader">Multipart Reader</a></li><li><a href="#part-header">Part header</a></li><li><a href="#pretty-printers">Pretty Printers</a></li></ul></nav><div class="odoc-content"><h3 id="types"><a href="#types" class="anchor"></a>Types</h3><div class="odoc-spec"><div class="spec type" id="type-reader" class="anchored"><a href="#type-reader" class="anchor"></a><code><span><span class="keyword">type</span> reader</span></code></div><div class="spec-doc"><p><code>reader</code> represents a HTTP multipart formdata reader.</p></div></div><div class="odoc-spec"><div class="spec type" id="type-read" class="anchored"><a href="#type-read" class="anchor"></a><code><span><span class="keyword">and</span> read</span><span> = </span><span>[ </span></code><table><tr id="type-read.End" class="anchored"><td class="def constructor"><a href="#type-read.End" class="anchor"></a><code><span>| </span></code><code><span>`End</span></code></td><td class="def-doc"><span class="comment-delim">(*</span><p>The reader has completed reading.</p><span class="comment-delim">*)</span></td></tr><tr id="type-read.Header" class="anchored"><td class="def constructor"><a href="#type-read.Header" class="anchor"></a><code><span>| </span></code><code><span>`Header <span class="keyword">of</span> <a href="#type-part_header">part_header</a></span></code></td><td class="def-doc"><span class="comment-delim">(*</span><p>Multipart part header data.</p><span class="comment-delim">*)</span></td></tr><tr id="type-read.Body" class="anchored"><td class="def constructor"><a href="#type-read.Body" class="anchor"></a><code><span>| </span></code><code><span>`Body <span class="keyword">of</span> <span class="xref-unresolved">Cstruct</span>.t</span></code></td><td class="def-doc"><span class="comment-delim">(*</span><p>Multipart part body data.</p><span class="comment-delim">*)</span></td></tr><tr id="type-read.Body_end" class="anchored"><td class="def constructor"><a href="#type-read.Body_end" class="anchor"></a><code><span>| </span></code><code><span>`Body_end</span></code></td><td class="def-doc"><span class="comment-delim">(*</span><p><code>reader</code> has completed reading the Multipart body data.</p><span class="comment-delim">*)</span></td></tr><tr id="type-read.Awaiting_input" class="anchored"><td class="def constructor"><a href="#type-read.Awaiting_input" class="anchor"></a><code><span>| </span></code><code><span>`Awaiting_input <span class="keyword">of</span> <span><span>[ <span>`Cstruct of <span class="xref-unresolved">Cstruct</span>.t</span> <span>| `Eof</span> ]</span> <span class="arrow">&#45;&gt;</span></span> <a href="#type-read">read</a></span></code></td><td class="def-doc"><span class="comment-delim">(*</span><p>The reader is waiting for it to be provided with input data. This is only returned when <code>`Incremental</code> is chosen as <a href="#type-input"><code>input</code></a>.</p><span class="comment-delim">*)</span></td></tr><tr id="type-read.Error" class="anchored"><td class="def constructor"><a href="#type-read.Error" class="anchor"></a><code><span>| </span></code><code><span>`Error <span class="keyword">of</span> string</span></code></td><td class="def-doc"><span class="comment-delim">(*</span><p>Represents an error in <a href="#type-input"><code>input</code></a> data.</p><span class="comment-delim">*)</span></td></tr></table><code><span> ]</span></code></div><div class="spec-doc"><p><code>read</code> represents both the current state and data read by a <a href="#type-reader"><code>reader</code></a>.</p></div></div><div class="odoc-spec"><div class="spec type" id="type-input" class="anchored"><a href="#type-input" class="anchor"></a><code><span><span class="keyword">and</span> input</span><span> = </span><span>[ </span></code><table><tr id="type-input.Cstruct" class="anchored"><td class="def constructor"><a href="#type-input.Cstruct" class="anchor"></a><code><span>| </span></code><code><span>`Cstruct <span class="keyword">of</span> <span class="xref-unresolved">Cstruct</span>.t</span></code></td><td class="def-doc"><span class="comment-delim">(*</span><p>A bigstring input.</p><span class="comment-delim">*)</span></td></tr><tr id="type-input.Incremental" class="anchored"><td class="def constructor"><a href="#type-input.Incremental" class="anchor"></a><code><span>| </span></code><code><span>`Incremental</span></code></td><td class="def-doc"><span class="comment-delim">(*</span><p>The caller of the library periodically provides input to the parser.</p><span class="comment-delim">*)</span></td></tr></table><code><span> ]</span></code></div></div><div class="odoc-spec"><div class="spec type" id="type-part_header" class="anchored"><a href="#type-part_header" class="anchor"></a><code><span><span class="keyword">and</span> part_header</span></code></div><div class="spec-doc"><p>Represents a parsed multipart part header data.</p></div></div><div class="odoc-spec"><div class="spec type" id="type-boundary" class="anchored"><a href="#type-boundary" class="anchor"></a><code><span><span class="keyword">and</span> boundary</span></code></div><div class="spec-doc"><p>Represents the multipart boundary value.</p></div></div><h3 id="mulipart-boundary-parser"><a href="#mulipart-boundary-parser" class="anchor"></a>Mulipart Boundary parser</h3><div class="odoc-spec"><div class="spec value" id="val-boundary" class="anchored"><a href="#val-boundary" class="anchor"></a><code><span><span class="keyword">val</span> boundary : <span>string <span class="arrow">&#45;&gt;</span></span> <span><span>(<a href="#type-boundary">boundary</a>, string)</span> <span class="xref-unresolved">Stdlib</span>.result</span></span></code></div><div class="spec-doc"><p><code>boundary content_type</code> parses <code>content_type</code> to extract <a href="#type-boundary"><code>boundary</code></a> value. <code>content_type</code> is the HTTP request <code>Content-Type</code> header value.</p><pre><code>let content_type =
&quot;multipart/form-data; \
boundary=---------------------------735323031399963166993862150&quot;
in
Expand Down
3 changes: 1 addition & 2 deletions lib/http_multipart_formdata.mli
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,7 @@ and read =
| `Awaiting_input of [`Cstruct of Cstruct.t | `Eof] -> read
(** The reader is waiting for it to be provided with input data. This is
only returned when [`Incremental] is chosen as {!input}. *)
| `Error of string ]
(** Represents an error in {!input} data. *)
| `Error of string (** Represents an error in {!input} data. *) ]

and input =
[ `Cstruct of Cstruct.t (** A bigstring input. *)
Expand Down

0 comments on commit 351c0e0

Please sign in to comment.