diff options
author | Kartikaya Gupta <kats@seldon.staktrace.com> | 2016-06-22 11:41:54 -0400 |
---|---|---|
committer | Kartikaya Gupta <kats@seldon.staktrace.com> | 2016-06-22 11:41:54 -0400 |
commit | a48bf7ece27e4f52d980b5668abe49cf046255e8 (patch) | |
tree | 12dce0a7ec1c384fe233ba3e337c543e7bc61f3b /target/doc/src/mailparse | |
parent | accf7a59489a4cd6107708d41900142d06544be9 (diff) |
Update documentation
Diffstat (limited to 'target/doc/src/mailparse')
-rw-r--r-- | target/doc/src/mailparse/src/lib.rs.html | 153 | ||||
-rw-r--r-- | target/doc/src/mailparse/src/macros.rs.html | 124 |
2 files changed, 145 insertions, 132 deletions
diff --git a/target/doc/src/mailparse/src/lib.rs.html b/target/doc/src/mailparse/src/lib.rs.html index b4700c7..ac11a21 100644 --- a/target/doc/src/mailparse/src/lib.rs.html +++ b/target/doc/src/mailparse/src/lib.rs.html @@ -11,7 +11,6 @@ <link rel="stylesheet" type="text/css" href="../../../rustdoc.css"> <link rel="stylesheet" type="text/css" href="../../../main.css"> - @@ -941,6 +940,75 @@ <span id="897">897</span> <span id="898">898</span> <span id="899">899</span> +<span id="900">900</span> +<span id="901">901</span> +<span id="902">902</span> +<span id="903">903</span> +<span id="904">904</span> +<span id="905">905</span> +<span id="906">906</span> +<span id="907">907</span> +<span id="908">908</span> +<span id="909">909</span> +<span id="910">910</span> +<span id="911">911</span> +<span id="912">912</span> +<span id="913">913</span> +<span id="914">914</span> +<span id="915">915</span> +<span id="916">916</span> +<span id="917">917</span> +<span id="918">918</span> +<span id="919">919</span> +<span id="920">920</span> +<span id="921">921</span> +<span id="922">922</span> +<span id="923">923</span> +<span id="924">924</span> +<span id="925">925</span> +<span id="926">926</span> +<span id="927">927</span> +<span id="928">928</span> +<span id="929">929</span> +<span id="930">930</span> +<span id="931">931</span> +<span id="932">932</span> +<span id="933">933</span> +<span id="934">934</span> +<span id="935">935</span> +<span id="936">936</span> +<span id="937">937</span> +<span id="938">938</span> +<span id="939">939</span> +<span id="940">940</span> +<span id="941">941</span> +<span id="942">942</span> +<span id="943">943</span> +<span id="944">944</span> +<span id="945">945</span> +<span id="946">946</span> +<span id="947">947</span> +<span id="948">948</span> +<span id="949">949</span> +<span id="950">950</span> +<span id="951">951</span> +<span id="952">952</span> +<span id="953">953</span> +<span id="954">954</span> +<span id="955">955</span> +<span id="956">956</span> +<span id="957">957</span> +<span id="958">958</span> +<span id="959">959</span> +<span id="960">960</span> +<span id="961">961</span> +<span id="962">962</span> +<span id="963">963</span> +<span id="964">964</span> +<span id="965">965</span> +<span id="966">966</span> +<span id="967">967</span> +<span id="968">968</span> </pre><pre class='rust '> <span class='kw'>extern</span> <span class='kw'>crate</span> <span class='ident'>base64</span>; <span class='kw'>extern</span> <span class='kw'>crate</span> <span class='ident'>encoding</span>; @@ -1035,8 +1103,16 @@ } <span class='kw'>fn</span> <span class='ident'>is_boundary</span>(<span class='ident'>line</span>: <span class='kw-2'>&</span><span class='ident'>str</span>, <span class='ident'>ix</span>: <span class='prelude-ty'>Option</span><span class='op'><</span><span class='ident'>usize</span><span class='op'>></span>) <span class='op'>-></span> <span class='ident'>bool</span> { - <span class='ident'>ix</span>.<span class='ident'>map_or_else</span>(<span class='op'>||</span> <span class='boolval'>true</span>, - <span class='op'>|</span><span class='ident'>v</span><span class='op'>|</span> <span class='ident'>v</span> <span class='op'>>=</span> <span class='ident'>line</span>.<span class='ident'>len</span>() <span class='op'>||</span> <span class='ident'>line</span>.<span class='ident'>chars</span>().<span class='ident'>nth</span>(<span class='ident'>v</span>).<span class='ident'>unwrap</span>().<span class='ident'>is_whitespace</span>()) + <span class='kw'>match</span> <span class='ident'>ix</span> { + <span class='prelude-val'>None</span> <span class='op'>=></span> <span class='boolval'>true</span>, + <span class='prelude-val'>Some</span>(<span class='ident'>v</span>) <span class='op'>=></span> { + <span class='kw'>if</span> <span class='ident'>v</span> <span class='op'>>=</span> <span class='ident'>line</span>.<span class='ident'>len</span>() { + <span class='kw'>return</span> <span class='boolval'>true</span>; + } + <span class='kw'>let</span> <span class='ident'>c</span> <span class='op'>=</span> <span class='ident'>line</span>.<span class='ident'>chars</span>().<span class='ident'>nth</span>(<span class='ident'>v</span>).<span class='ident'>unwrap</span>(); + <span class='kw'>return</span> <span class='ident'>c</span>.<span class='ident'>is_whitespace</span>() <span class='op'>||</span> <span class='ident'>c</span> <span class='op'>==</span> <span class='string'>'"'</span> <span class='op'>||</span> <span class='ident'>c</span> <span class='op'>==</span> <span class='string'>'('</span> <span class='op'>||</span> <span class='ident'>c</span> <span class='op'>==</span> <span class='string'>')'</span> <span class='op'>||</span> <span class='ident'>c</span> <span class='op'>==</span> <span class='string'>'<'</span> <span class='op'>||</span> <span class='ident'>c</span> <span class='op'>==</span> <span class='string'>'>'</span>; + } + } } <span class='kw'>fn</span> <span class='ident'>find_from</span>(<span class='ident'>line</span>: <span class='kw-2'>&</span><span class='ident'>str</span>, <span class='ident'>ix_start</span>: <span class='ident'>usize</span>, <span class='ident'>key</span>: <span class='kw-2'>&</span><span class='ident'>str</span>) <span class='op'>-></span> <span class='prelude-ty'>Option</span><span class='op'><</span><span class='ident'>usize</span><span class='op'>></span> { @@ -1093,10 +1169,18 @@ <span class='kw'>let</span> <span class='ident'>input</span> <span class='op'>=</span> <span class='kw-2'>&</span><span class='ident'>encoded</span>[<span class='ident'>ix_delim2</span> <span class='op'>+</span> <span class='number'>1</span>..]; <span class='kw'>let</span> <span class='ident'>decoded</span> <span class='op'>=</span> <span class='kw'>match</span> <span class='ident'>transfer_coding</span> { - <span class='string'>"B"</span> <span class='op'>=></span> <span class='macro'>try_none</span><span class='macro'>!</span>(<span class='ident'>base64</span>::<span class='ident'>u8de</span>(<span class='ident'>input</span>.<span class='ident'>as_bytes</span>()).<span class='ident'>ok</span>()), - <span class='string'>"Q"</span> <span class='op'>=></span> { - <span class='kw'>let</span> <span class='ident'>d</span> <span class='op'>=</span> <span class='ident'>quoted_printable</span>::<span class='ident'>decode_str</span>(<span class='kw-2'>&</span><span class='ident'>input</span>.<span class='ident'>replace</span>(<span class='string'>"_"</span>, <span class='string'>" "</span>), + <span class='string'>"B"</span> <span class='op'>|</span> <span class='string'>"b"</span> <span class='op'>=></span> <span class='macro'>try_none</span><span class='macro'>!</span>(<span class='ident'>base64</span>::<span class='ident'>u8de</span>(<span class='ident'>input</span>.<span class='ident'>as_bytes</span>()).<span class='ident'>ok</span>()), + <span class='string'>"Q"</span> <span class='op'>|</span> <span class='string'>"q"</span> <span class='op'>=></span> { + <span class='comment'>// The quoted_printable module does a trim_right on the input, so if</span> + <span class='comment'>// that affects the output we should save and restore the trailing</span> + <span class='comment'>// whitespace</span> + <span class='kw'>let</span> <span class='ident'>to_decode</span> <span class='op'>=</span> <span class='ident'>input</span>.<span class='ident'>replace</span>(<span class='string'>"_"</span>, <span class='string'>" "</span>); + <span class='kw'>let</span> <span class='ident'>trimmed</span> <span class='op'>=</span> <span class='ident'>to_decode</span>.<span class='ident'>trim_right</span>(); + <span class='kw'>let</span> <span class='kw-2'>mut</span> <span class='ident'>d</span> <span class='op'>=</span> <span class='ident'>quoted_printable</span>::<span class='ident'>decode_str</span>(<span class='kw-2'>&</span><span class='ident'>trimmed</span>, <span class='ident'>quoted_printable</span>::<span class='ident'>ParseMode</span>::<span class='ident'>Robust</span>); + <span class='kw'>if</span> <span class='ident'>d</span>.<span class='ident'>is_ok</span>() <span class='op'>&&</span> <span class='ident'>to_decode</span>.<span class='ident'>len</span>() <span class='op'>!=</span> <span class='ident'>trimmed</span>.<span class='ident'>len</span>() { + <span class='ident'>d</span>.<span class='ident'>as_mut</span>().<span class='ident'>unwrap</span>().<span class='ident'>extend_from_slice</span>(<span class='ident'>to_decode</span>[<span class='ident'>trimmed</span>.<span class='ident'>len</span>()..].<span class='ident'>as_bytes</span>()); + } <span class='macro'>try_none</span><span class='macro'>!</span>(<span class='ident'>d</span>.<span class='ident'>ok</span>()) } _ <span class='op'>=></span> <span class='kw'>return</span> <span class='prelude-val'>None</span>, @@ -1303,6 +1387,11 @@ <span class='doccomment'>/// ```</span> <span class='kw'>fn</span> <span class='ident'>get_first_value</span>(<span class='kw-2'>&</span><span class='self'>self</span>, <span class='ident'>key</span>: <span class='kw-2'>&</span><span class='ident'>str</span>) <span class='op'>-></span> <span class='prelude-ty'>Result</span><span class='op'><</span><span class='prelude-ty'>Option</span><span class='op'><</span><span class='ident'>String</span><span class='op'>></span>, <span class='ident'>MailParseError</span><span class='op'>></span>; + <span class='doccomment'>/// Same as get_first_value, but does a case-insensitive search for the header.</span> + <span class='doccomment'>/// According to the spec the mail headers are supposed to be case-sensitive,</span> + <span class='doccomment'>/// but in real-world scenarios that's not always the case.</span> + <span class='kw'>fn</span> <span class='ident'>get_first_value_ci</span>(<span class='kw-2'>&</span><span class='self'>self</span>, <span class='ident'>key</span>: <span class='kw-2'>&</span><span class='ident'>str</span>) <span class='op'>-></span> <span class='prelude-ty'>Result</span><span class='op'><</span><span class='prelude-ty'>Option</span><span class='op'><</span><span class='ident'>String</span><span class='op'>></span>, <span class='ident'>MailParseError</span><span class='op'>></span>; + <span class='doccomment'>/// Look through the list of headers and return the values of all headers</span> <span class='doccomment'>/// matching the provided key. Returns an empty vector if no matching headers</span> <span class='doccomment'>/// were found. The order of the returned values is the same as the order</span> @@ -1319,6 +1408,11 @@ <span class='doccomment'>/// vec!["Value1".to_string(), "Value2".to_string()]);</span> <span class='doccomment'>/// ```</span> <span class='kw'>fn</span> <span class='ident'>get_all_values</span>(<span class='kw-2'>&</span><span class='self'>self</span>, <span class='ident'>key</span>: <span class='kw-2'>&</span><span class='ident'>str</span>) <span class='op'>-></span> <span class='prelude-ty'>Result</span><span class='op'><</span><span class='ident'>Vec</span><span class='op'><</span><span class='ident'>String</span><span class='op'>></span>, <span class='ident'>MailParseError</span><span class='op'>></span>; + + <span class='doccomment'>/// Same as get_all_values, but does a case-insensitive search for the header.</span> + <span class='doccomment'>/// According to the spec the mail headers are supposed to be case-sensitive,</span> + <span class='doccomment'>/// but in real-world scenarios that's not always the case.</span> + <span class='kw'>fn</span> <span class='ident'>get_all_values_ci</span>(<span class='kw-2'>&</span><span class='self'>self</span>, <span class='ident'>key</span>: <span class='kw-2'>&</span><span class='ident'>str</span>) <span class='op'>-></span> <span class='prelude-ty'>Result</span><span class='op'><</span><span class='ident'>Vec</span><span class='op'><</span><span class='ident'>String</span><span class='op'>></span>, <span class='ident'>MailParseError</span><span class='op'>></span>; } <span class='kw'>impl</span><span class='op'><</span><span class='lifetime'>'a</span><span class='op'>></span> <span class='ident'>MailHeaderMap</span> <span class='kw'>for</span> <span class='ident'>Vec</span><span class='op'><</span><span class='ident'>MailHeader</span><span class='op'><</span><span class='lifetime'>'a</span><span class='op'>>></span> { @@ -1331,6 +1425,16 @@ <span class='prelude-val'>Ok</span>(<span class='prelude-val'>None</span>) } + <span class='kw'>fn</span> <span class='ident'>get_first_value_ci</span>(<span class='kw-2'>&</span><span class='self'>self</span>, <span class='ident'>key</span>: <span class='kw-2'>&</span><span class='ident'>str</span>) <span class='op'>-></span> <span class='prelude-ty'>Result</span><span class='op'><</span><span class='prelude-ty'>Option</span><span class='op'><</span><span class='ident'>String</span><span class='op'>></span>, <span class='ident'>MailParseError</span><span class='op'>></span> { + <span class='kw'>let</span> <span class='ident'>lower_key</span> <span class='op'>=</span> <span class='ident'>key</span>.<span class='ident'>to_lowercase</span>(); + <span class='kw'>for</span> <span class='ident'>x</span> <span class='kw'>in</span> <span class='self'>self</span> { + <span class='kw'>if</span> <span class='macro'>try</span><span class='macro'>!</span>(<span class='ident'>x</span>.<span class='ident'>get_key</span>()).<span class='ident'>to_lowercase</span>() <span class='op'>==</span> <span class='ident'>lower_key</span> { + <span class='kw'>return</span> <span class='ident'>x</span>.<span class='ident'>get_value</span>().<span class='ident'>map</span>(<span class='op'>|</span><span class='ident'>v</span><span class='op'>|</span> <span class='prelude-val'>Some</span>(<span class='ident'>v</span>)); + } + } + <span class='prelude-val'>Ok</span>(<span class='prelude-val'>None</span>) + } + <span class='kw'>fn</span> <span class='ident'>get_all_values</span>(<span class='kw-2'>&</span><span class='self'>self</span>, <span class='ident'>key</span>: <span class='kw-2'>&</span><span class='ident'>str</span>) <span class='op'>-></span> <span class='prelude-ty'>Result</span><span class='op'><</span><span class='ident'>Vec</span><span class='op'><</span><span class='ident'>String</span><span class='op'>></span>, <span class='ident'>MailParseError</span><span class='op'>></span> { <span class='kw'>let</span> <span class='kw-2'>mut</span> <span class='ident'>values</span>: <span class='ident'>Vec</span><span class='op'><</span><span class='ident'>String</span><span class='op'>></span> <span class='op'>=</span> <span class='ident'>Vec</span>::<span class='ident'>new</span>(); <span class='kw'>for</span> <span class='ident'>x</span> <span class='kw'>in</span> <span class='self'>self</span> { @@ -1340,6 +1444,17 @@ } <span class='prelude-val'>Ok</span>(<span class='ident'>values</span>) } + + <span class='kw'>fn</span> <span class='ident'>get_all_values_ci</span>(<span class='kw-2'>&</span><span class='self'>self</span>, <span class='ident'>key</span>: <span class='kw-2'>&</span><span class='ident'>str</span>) <span class='op'>-></span> <span class='prelude-ty'>Result</span><span class='op'><</span><span class='ident'>Vec</span><span class='op'><</span><span class='ident'>String</span><span class='op'>></span>, <span class='ident'>MailParseError</span><span class='op'>></span> { + <span class='kw'>let</span> <span class='ident'>lower_key</span> <span class='op'>=</span> <span class='ident'>key</span>.<span class='ident'>to_lowercase</span>(); + <span class='kw'>let</span> <span class='kw-2'>mut</span> <span class='ident'>values</span>: <span class='ident'>Vec</span><span class='op'><</span><span class='ident'>String</span><span class='op'>></span> <span class='op'>=</span> <span class='ident'>Vec</span>::<span class='ident'>new</span>(); + <span class='kw'>for</span> <span class='ident'>x</span> <span class='kw'>in</span> <span class='self'>self</span> { + <span class='kw'>if</span> <span class='macro'>try</span><span class='macro'>!</span>(<span class='ident'>x</span>.<span class='ident'>get_key</span>()).<span class='ident'>to_lowercase</span>() <span class='op'>==</span> <span class='ident'>lower_key</span> { + <span class='ident'>values</span>.<span class='ident'>push</span>(<span class='macro'>try</span><span class='macro'>!</span>(<span class='ident'>x</span>.<span class='ident'>get_value</span>())); + } + } + <span class='prelude-val'>Ok</span>(<span class='ident'>values</span>) + } } <span class='doccomment'>/// Parses all the headers from the raw data given.</span> @@ -1491,7 +1606,7 @@ <span class='doccomment'>/// assert_eq!(p.get_body().unwrap(), "This is the body");</span> <span class='doccomment'>/// ```</span> <span class='kw'>pub</span> <span class='kw'>fn</span> <span class='ident'>get_body</span>(<span class='kw-2'>&</span><span class='self'>self</span>) <span class='op'>-></span> <span class='prelude-ty'>Result</span><span class='op'><</span><span class='ident'>String</span>, <span class='ident'>MailParseError</span><span class='op'>></span> { - <span class='kw'>let</span> <span class='ident'>transfer_coding</span> <span class='op'>=</span> <span class='macro'>try</span><span class='macro'>!</span>(<span class='self'>self</span>.<span class='ident'>headers</span>.<span class='ident'>get_first_value</span>(<span class='string'>"Content-Transfer-Encoding"</span>)) + <span class='kw'>let</span> <span class='ident'>transfer_coding</span> <span class='op'>=</span> <span class='macro'>try</span><span class='macro'>!</span>(<span class='self'>self</span>.<span class='ident'>headers</span>.<span class='ident'>get_first_value_ci</span>(<span class='string'>"Content-Transfer-Encoding"</span>)) .<span class='ident'>map</span>(<span class='op'>|</span><span class='ident'>s</span><span class='op'>|</span> <span class='ident'>s</span>.<span class='ident'>to_lowercase</span>()); <span class='kw'>let</span> <span class='ident'>decoded</span> <span class='op'>=</span> <span class='kw'>match</span> <span class='ident'>transfer_coding</span>.<span class='ident'>unwrap_or</span>(<span class='ident'>String</span>::<span class='ident'>new</span>()).<span class='ident'>as_ref</span>() { <span class='string'>"base64"</span> <span class='op'>=></span> { @@ -1553,7 +1668,7 @@ <span class='doccomment'>/// ```</span> <span class='kw'>pub</span> <span class='kw'>fn</span> <span class='ident'>parse_mail</span>(<span class='ident'>raw_data</span>: <span class='kw-2'>&</span>[<span class='ident'>u8</span>]) <span class='op'>-></span> <span class='prelude-ty'>Result</span><span class='op'><</span><span class='ident'>ParsedMail</span>, <span class='ident'>MailParseError</span><span class='op'>></span> { <span class='kw'>let</span> (<span class='ident'>headers</span>, <span class='ident'>ix_body</span>) <span class='op'>=</span> <span class='macro'>try</span><span class='macro'>!</span>(<span class='ident'>parse_headers</span>(<span class='ident'>raw_data</span>)); - <span class='kw'>let</span> <span class='ident'>ctype</span> <span class='op'>=</span> <span class='kw'>match</span> <span class='macro'>try</span><span class='macro'>!</span>(<span class='ident'>headers</span>.<span class='ident'>get_first_value</span>(<span class='string'>"Content-Type"</span>)) { + <span class='kw'>let</span> <span class='ident'>ctype</span> <span class='op'>=</span> <span class='kw'>match</span> <span class='macro'>try</span><span class='macro'>!</span>(<span class='ident'>headers</span>.<span class='ident'>get_first_value_ci</span>(<span class='string'>"Content-Type"</span>)) { <span class='prelude-val'>Some</span>(<span class='ident'>s</span>) <span class='op'>=></span> <span class='macro'>try</span><span class='macro'>!</span>(<span class='ident'>parse_content_type</span>(<span class='kw-2'>&</span><span class='ident'>s</span>)), <span class='prelude-val'>None</span> <span class='op'>=></span> { <span class='ident'>ParsedContentType</span> { @@ -1697,6 +1812,23 @@ <span class='kw'>let</span> (<span class='ident'>parsed</span>, _) <span class='op'>=</span> <span class='ident'>parse_header</span>(<span class='string'>b"NotSeparateWord2: =?utf-8?Q?hello?=world"</span>).<span class='ident'>unwrap</span>(); <span class='macro'>assert_eq</span><span class='macro'>!</span>(<span class='ident'>parsed</span>.<span class='ident'>get_value</span>().<span class='ident'>unwrap</span>(), <span class='string'>"=?utf-8?Q?hello?=world"</span>); + + <span class='kw'>let</span> (<span class='ident'>parsed</span>, _) <span class='op'>=</span> <span class='ident'>parse_header</span>(<span class='string'>b"Key: \"=?utf-8?Q?value?=\""</span>).<span class='ident'>unwrap</span>(); + <span class='macro'>assert_eq</span><span class='macro'>!</span>(<span class='ident'>parsed</span>.<span class='ident'>get_value</span>().<span class='ident'>unwrap</span>(), <span class='string'>"\"value\""</span>); + + <span class='kw'>let</span> (<span class='ident'>parsed</span>, _) <span class='op'>=</span> <span class='ident'>parse_header</span>(<span class='string'>b"Subject: =?utf-8?q?=5BOntario_Builder=5D_Understanding_home_shopping_=E2=80=93_a_q?=\n \ + =?utf-8?q?uick_survey?="</span>) + .<span class='ident'>unwrap</span>(); + <span class='macro'>assert_eq</span><span class='macro'>!</span>(<span class='ident'>parsed</span>.<span class='ident'>get_key</span>().<span class='ident'>unwrap</span>(), <span class='string'>"Subject"</span>); + <span class='macro'>assert_eq</span><span class='macro'>!</span>(<span class='ident'>parsed</span>.<span class='ident'>get_value</span>().<span class='ident'>unwrap</span>(), <span class='string'>"[Ontario Builder] Understanding home shopping \u{2013} a q uick survey"</span>); + + <span class='kw'>let</span> (<span class='ident'>parsed</span>, _) <span class='op'>=</span> <span class='ident'>parse_header</span>(<span class='string'>b"Content-Type: image/jpeg; name=\"=?UTF-8?B?MDY2MTM5ODEuanBn?=\""</span>).<span class='ident'>unwrap</span>(); + <span class='macro'>assert_eq</span><span class='macro'>!</span>(<span class='ident'>parsed</span>.<span class='ident'>get_key</span>().<span class='ident'>unwrap</span>(), <span class='string'>"Content-Type"</span>); + <span class='macro'>assert_eq</span><span class='macro'>!</span>(<span class='ident'>parsed</span>.<span class='ident'>get_value</span>().<span class='ident'>unwrap</span>(), <span class='string'>"image/jpeg; name=\"06613981.jpg\""</span>); + + <span class='kw'>let</span> (<span class='ident'>parsed</span>, _) <span class='op'>=</span> <span class='ident'>parse_header</span>(<span class='string'>b"From: =?UTF-8?Q?\"Motorola_Owners=E2=80=99_Forums\"_?=<forums@motorola.com>"</span>).<span class='ident'>unwrap</span>(); + <span class='macro'>assert_eq</span><span class='macro'>!</span>(<span class='ident'>parsed</span>.<span class='ident'>get_key</span>().<span class='ident'>unwrap</span>(), <span class='string'>"From"</span>); + <span class='macro'>assert_eq</span><span class='macro'>!</span>(<span class='ident'>parsed</span>.<span class='ident'>get_value</span>().<span class='ident'>unwrap</span>(), <span class='string'>"\"Motorola Owners\u{2019} Forums\" <forums@motorola.com>"</span>); } <span class='attribute'>#[<span class='ident'>test</span>]</span> @@ -1839,6 +1971,11 @@ <span class='kw'>let</span> <span class='ident'>mail</span> <span class='op'>=</span> <span class='ident'>parse_mail</span>(<span class='string'>b"Content-Type: text/plain; charset=x-unknown\r\n\r\nhello world"</span>) .<span class='ident'>unwrap</span>(); <span class='macro'>assert_eq</span><span class='macro'>!</span>(<span class='ident'>mail</span>.<span class='ident'>get_body</span>().<span class='ident'>unwrap</span>(), <span class='string'>"hello world"</span>); + + <span class='kw'>let</span> <span class='ident'>mail</span> <span class='op'>=</span> <span class='ident'>parse_mail</span>(<span class='string'>b"ConTENT-tyPE: text/html\r\n\r\nhello world"</span>) + .<span class='ident'>unwrap</span>(); + <span class='macro'>assert_eq</span><span class='macro'>!</span>(<span class='ident'>mail</span>.<span class='ident'>ctype</span>.<span class='ident'>mimetype</span>, <span class='string'>"text/html"</span>); + <span class='macro'>assert_eq</span><span class='macro'>!</span>(<span class='ident'>mail</span>.<span class='ident'>get_body</span>().<span class='ident'>unwrap</span>(), <span class='string'>"hello world"</span>); } } </pre> diff --git a/target/doc/src/mailparse/src/macros.rs.html b/target/doc/src/mailparse/src/macros.rs.html deleted file mode 100644 index 21c78a4..0000000 --- a/target/doc/src/mailparse/src/macros.rs.html +++ /dev/null @@ -1,124 +0,0 @@ -<!DOCTYPE html> -<html lang="en"> -<head> - <meta charset="utf-8"> - <meta name="viewport" content="width=device-width, initial-scale=1.0"> - <meta name="generator" content="rustdoc"> - <meta name="description" content="Source to the Rust file `src/macros.rs`."> - <meta name="keywords" content="rust, rustlang, rust-lang"> - - <title>macros.rs.html -- source</title> - - <link rel="stylesheet" type="text/css" href="../../../rustdoc.css"> - <link rel="stylesheet" type="text/css" href="../../../main.css"> - - - - -</head> -<body class="rustdoc"> - <!--[if lte IE 8]> - <div class="warning"> - This old browser is unsupported and will most likely display funky - things. - </div> - <![endif]--> - - - - <nav class="sidebar"> - - - </nav> - - <nav class="sub"> - <form class="search-form js-only"> - <div class="search-container"> - <input class="search-input" name="search" - autocomplete="off" - placeholder="Click or press ‘S’ to search, ‘?’ for more options…" - type="search"> - </div> - </form> - </nav> - - <section id='main' class="content source"><pre class="line-numbers"><span id="1">1</span> -<span id="2">2</span> -<span id="3">3</span> -<span id="4">4</span> -<span id="5">5</span> -<span id="6">6</span> -<span id="7">7</span> -<span id="8">8</span> -</pre><pre class='rust '> -<span class='macro'>macro_rules</span><span class='macro'>!</span> <span class='ident'>try_none</span> { - ( <span class='macro-nonterminal'>$</span><span class='macro-nonterminal'>x</span>:<span class='ident'>expr</span> ) <span class='op'>=></span> {{ - <span class='kw'>match</span> <span class='macro-nonterminal'>$</span><span class='macro-nonterminal'>x</span> { - <span class='prelude-val'>Some</span>(<span class='ident'>v</span>) <span class='op'>=></span> <span class='ident'>v</span>, - <span class='prelude-val'>None</span> <span class='op'>=></span> <span class='kw'>return</span> <span class='prelude-val'>None</span>, - } - }} -} -</pre> -</section> - <section id='search' class="content hidden"></section> - - <section class="footer"></section> - - <aside id="help" class="hidden"> - <div> - <h1 class="hidden">Help</h1> - - <div class="shortcuts"> - <h2>Keyboard Shortcuts</h2> - - <dl> - <dt>?</dt> - <dd>Show this help dialog</dd> - <dt>S</dt> - <dd>Focus the search field</dd> - <dt>⇤</dt> - <dd>Move up in search results</dd> - <dt>⇥</dt> - <dd>Move down in search results</dd> - <dt>⏎</dt> - <dd>Go to active search result</dd> - </dl> - </div> - - <div class="infos"> - <h2>Search Tricks</h2> - - <p> - Prefix searches with a type followed by a colon (e.g. - <code>fn:</code>) to restrict the search to a given type. - </p> - - <p> - Accepted types are: <code>fn</code>, <code>mod</code>, - <code>struct</code>, <code>enum</code>, - <code>trait</code>, <code>type</code>, <code>macro</code>, - and <code>const</code>. - </p> - - <p> - Search functions by type signature (e.g. - <code>vec -> usize</code> or <code>* -> vec</code>) - </p> - </div> - </div> - </aside> - - - - <script> - window.rootPath = "../../../"; - window.currentCrate = "mailparse"; - window.playgroundUrl = ""; - </script> - <script src="../../../jquery.js"></script> - <script src="../../../main.js"></script> - - <script defer src="../../../search-index.js"></script> -</body> -</html>
\ No newline at end of file |