Warning, file /frameworks/syntax-highlighting/autotests/html/test.rs.html was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 <!DOCTYPE html>
0002 <html><head>
0003 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
0004 <title>test.rs</title>
0005 <meta name="generator" content="KF5::SyntaxHighlighting - Definition (Rust) - Theme (Breeze Light)"/>
0006 </head><body style="background-color:#ffffff;color:#1f1c1b"><pre>
0007 <span style="color:#898887;">// Comment </span><span style="color:#81ca2d;background-color:#f7e6e6;font-weight:bold;">NOTE</span>
0008 <span style="color:#898887;">/* Comment </span><span style="color:#ca9219;background-color:#451e1a;font-weight:bold;">FIXME</span><span style="color:#898887;"> </span><span style="color:#e85848;background-color:#451e1a;font-weight:bold;">ALERT</span>
0009 <span style="color:#898887;">   */</span>
0010 
0011 <span style="color:#898887;">// Identifiers</span>
0012 <span style="color:#006e28;">hellóñαωΑΩµo!</span>()<span style="color:#ca60ca;">;</span>
0013 <span style="color:#006e28;">HellóñαωΑΩµ::</span>Hello<span style="color:#ca60ca;">;</span>
0014 <span style="color:#006e28;">'hellóñαωΑΩµo</span>
0015 
0016 <span style="font-weight:bold;">pub</span> <span style="font-weight:bold;">use</span> <span style="font-weight:bold;">self</span><span style="color:#006e28;">::PathParameters::</span><span style="color:#ca60ca;">*;</span>
0017 <span style="font-weight:bold;">pub</span> <span style="font-weight:bold;">use</span> <span style="color:#006e28;">symbol::</span><span style="color:#ca60ca;">{</span>Ident<span style="color:#ca60ca;">,</span> Symbol <span style="font-weight:bold;">as</span> Name<span style="color:#ca60ca;">};</span>
0018 <span style="font-weight:bold;">use</span> <span style="color:#006e28;">serialize::</span><span style="color:#ca60ca;">{</span><span style="font-weight:bold;">self</span><span style="color:#ca60ca;">,</span> Encoder<span style="color:#ca60ca;">,</span> Decoder<span style="color:#ca60ca;">};</span>
0019 <span style="font-weight:bold;">use</span> <span style="color:#006e28;">std::</span><span style="color:#0057ae;">u32</span><span style="color:#ca60ca;">;</span>
0020 
0021 <span style="color:#0057ae;">#[derive(</span><span style="color:#644a9b;font-weight:bold;">Clone</span><span style="color:#ca60ca;">,</span><span style="color:#0057ae;"> </span><span style="color:#644a9b;font-weight:bold;">PartialEq</span><span style="color:#ca60ca;">,</span><span style="color:#0057ae;"> </span><span style="color:#644a9b;font-weight:bold;">Eq</span><span style="color:#ca60ca;">,</span><span style="color:#0057ae;"> </span><span style="color:#644a9b;font-weight:bold;">Hash</span><span style="color:#ca60ca;">,</span><span style="color:#0057ae;"> </span><span style="color:#644a9b;font-weight:bold;">Copy</span><span style="color:#0057ae;">)]</span>
0022 
0023 <span style="font-weight:bold;">pub</span> <span style="font-weight:bold;">struct</span> Lifetime <span style="color:#ca60ca;">{</span>
0024     <span style="font-weight:bold;">pub</span> id<span style="color:#ca60ca;">:</span> NodeId<span style="color:#ca60ca;">,</span>
0025     <span style="font-weight:bold;">pub</span> span<span style="color:#ca60ca;">:</span> Span<span style="color:#ca60ca;">,</span>
0026     <span style="font-weight:bold;">pub</span> bounds<span style="color:#ca60ca;">:</span> <span style="color:#0057ae;">Vec</span><span style="color:#ca60ca;">&lt;</span>PathSegment<span style="color:#ca60ca;">&gt;</span>
0027 <span style="color:#ca60ca;">}</span>
0028 
0029 <span style="font-weight:bold;">impl</span> <span style="color:#006e28;">fmt::</span><span style="color:#644a9b;font-weight:bold;">Debug</span> <span style="font-weight:bold;">for</span> Lifetime <span style="color:#ca60ca;">{</span>
0030     <span style="font-weight:bold;">fn</span> fmt(<span style="color:#ca60ca;">&amp;</span><span style="font-weight:bold;">self</span><span style="color:#ca60ca;">,</span> f<span style="color:#ca60ca;">:</span> <span style="color:#ca60ca;">&amp;</span><span style="font-weight:bold;">mut</span> <span style="color:#006e28;">fmt::</span>Formatter) <span style="color:#ca60ca;">-&gt;</span> <span style="color:#006e28;">fmt::</span><span style="color:#0057ae;">Result</span> <span style="color:#ca60ca;">{</span>
0031         <span style="color:#006e28;">write!</span>(f<span style="color:#ca60ca;">,</span> <span style="color:#bf0303;">&quot;lifetime({}: {})&quot;</span><span style="color:#ca60ca;">,</span> <span style="font-weight:bold;">self</span><span style="color:#ca60ca;">.</span>id<span style="color:#ca60ca;">,</span> <span style="color:#006e28;">pprust::</span>lifetime_to_string(<span style="font-weight:bold;">self</span>))
0032     <span style="color:#ca60ca;">}</span>
0033 <span style="color:#ca60ca;">}</span>
0034 <span style="font-weight:bold;">impl</span><span style="color:#ca60ca;">&lt;</span><span style="color:#006e28;">'a</span><span style="color:#ca60ca;">&gt;</span> <span style="color:#644a9b;font-weight:bold;">PartialEq</span><span style="color:#ca60ca;">&lt;&amp;</span><span style="color:#006e28;">'a</span> <span style="color:#0057ae;">str</span><span style="color:#ca60ca;">&gt;</span> <span style="font-weight:bold;">for</span> <span style="color:#0057ae;">Path</span> <span style="color:#ca60ca;">{</span>
0035     <span style="font-weight:bold;">fn</span> eq(<span style="color:#ca60ca;">&amp;</span><span style="font-weight:bold;">self</span><span style="color:#ca60ca;">,</span> string<span style="color:#ca60ca;">:</span> <span style="color:#ca60ca;">&amp;&amp;</span><span style="color:#006e28;">'a</span> <span style="color:#0057ae;">str</span>) <span style="color:#ca60ca;">-&gt;</span> <span style="color:#0057ae;">bool</span> <span style="color:#ca60ca;">{</span>
0036         <span style="font-weight:bold;">self</span><span style="color:#ca60ca;">.</span>segments<span style="color:#ca60ca;">.</span>len() <span style="color:#ca60ca;">==</span> <span style="color:#b08000;">1</span> <span style="color:#ca60ca;">&amp;&amp;</span> <span style="font-weight:bold;">self</span><span style="color:#ca60ca;">.</span>segments[<span style="color:#b08000;">0</span>]<span style="color:#ca60ca;">.</span>identifier<span style="color:#ca60ca;">.</span>name <span style="color:#ca60ca;">==</span> <span style="color:#ca60ca;">*</span>string
0037     <span style="color:#ca60ca;">}</span>
0038 <span style="color:#ca60ca;">}</span>
0039 
0040 <span style="font-weight:bold;">enum</span> TraitBoundModifier <span style="color:#ca60ca;">{</span>
0041     <span style="color:#aa5500;">None</span><span style="color:#ca60ca;">,</span>
0042     Maybe<span style="color:#ca60ca;">,</span>
0043 <span style="color:#ca60ca;">}</span>
0044 
0045 <span style="font-weight:bold;">union</span> tests <span style="color:#ca60ca;">{</span>
0046     a<span style="color:#ca60ca;">:</span> <span style="color:#0057ae;">i128</span><span style="color:#ca60ca;">,</span>
0047     b<span style="color:#ca60ca;">:</span> <span style="color:#0057ae;">isize</span><span style="color:#ca60ca;">,</span>
0048 <span style="color:#ca60ca;">}</span>
0049 
0050 <span style="color:#898887;">// Self vs self</span>
0051 <span style="font-weight:bold;">trait</span> T <span style="color:#ca60ca;">{</span>
0052     <span style="font-weight:bold;">type</span> Item<span style="color:#ca60ca;">;</span>
0053     <span style="color:#898887;">// `Self` will be whatever type that implements `T`.</span>
0054     <span style="font-weight:bold;">fn</span> new() <span style="color:#ca60ca;">-&gt;</span> <span style="color:#0057ae;">Self</span><span style="color:#ca60ca;">;</span>
0055     <span style="color:#898887;">// `Self::Item` will be the type alias in the implementation.</span>
0056     <span style="font-weight:bold;">fn</span> f(<span style="color:#ca60ca;">&amp;</span><span style="font-weight:bold;">self</span>) <span style="color:#ca60ca;">-&gt;</span> <span style="color:#0057ae;">Self</span><span style="color:#006e28;">::</span>Item<span style="color:#ca60ca;">;</span>
0057 <span style="color:#ca60ca;">}</span>
0058 
0059 <span style="color:#898887;">// Raw identifiers</span>
0060 <span style="font-weight:bold;">extern</span> <span style="font-weight:bold;">crate</span> foo<span style="color:#ca60ca;">;</span>
0061 <span style="font-weight:bold;">fn</span> main() <span style="color:#ca60ca;">{</span>
0062     <span style="color:#006e28;">foo::</span><span style="color:#ca60ca;">r#</span>try()<span style="color:#ca60ca;">;</span>
0063 <span style="color:#ca60ca;">}</span>
0064 
0065 <span style="color:#0057ae;">#[valid types]</span>
0066 <span style="font-weight:bold;">fn</span> types() <span style="color:#ca60ca;">{</span>
0067     <span style="font-weight:bold;">let</span> num <span style="color:#ca60ca;">=</span> <span style="color:#b08000;">333_3_</span><span style="color:#ca60ca;">;</span>
0068     <span style="font-weight:bold;">let</span> num_u8<span style="color:#ca60ca;">:</span> <span style="color:#0057ae;">u8</span> <span style="color:#ca60ca;">=</span> <span style="color:#b08000;">333u8</span><span style="color:#ca60ca;">;</span>
0069     <span style="font-weight:bold;">let</span> num_u16<span style="color:#ca60ca;">:</span> <span style="color:#0057ae;">u16</span> <span style="color:#ca60ca;">=</span> <span style="color:#b08000;">333u16</span><span style="color:#ca60ca;">;</span>
0070     <span style="font-weight:bold;">let</span> num_u32<span style="color:#ca60ca;">:</span> <span style="color:#0057ae;">u32</span> <span style="color:#ca60ca;">=</span> <span style="color:#b08000;">333u32</span><span style="color:#ca60ca;">;</span>
0071     <span style="font-weight:bold;">let</span> num_u64<span style="color:#ca60ca;">:</span> <span style="color:#0057ae;">u64</span> <span style="color:#ca60ca;">=</span> <span style="color:#b08000;">333u64</span><span style="color:#ca60ca;">;</span>
0072     <span style="font-weight:bold;">let</span> num_u128<span style="color:#ca60ca;">:</span> <span style="color:#0057ae;">u128</span> <span style="color:#ca60ca;">=</span> <span style="color:#b08000;">333u128</span><span style="color:#ca60ca;">;</span>
0073     <span style="font-weight:bold;">let</span> num_usize<span style="color:#ca60ca;">:</span> <span style="color:#0057ae;">usize</span> <span style="color:#ca60ca;">=</span> <span style="color:#b08000;">333usize</span><span style="color:#ca60ca;">;</span>
0074     <span style="font-weight:bold;">let</span> num_float<span style="color:#ca60ca;">:</span> <span style="color:#0057ae;">f32</span> <span style="color:#ca60ca;">=</span> <span style="color:#b08000;">333.45f32</span><span style="color:#ca60ca;">;</span>
0075 
0076     <span style="font-weight:bold;">let</span> binary <span style="color:#ca60ca;">=</span> <span style="color:#b08000;">0b1_010</span><span style="color:#ca60ca;">;</span>
0077     <span style="font-weight:bold;">let</span> octal <span style="color:#ca60ca;">=</span> <span style="color:#b08000;">0o21535</span><span style="color:#ca60ca;">;</span>
0078     <span style="font-weight:bold;">let</span> hexadecimal <span style="color:#ca60ca;">=</span> <span style="color:#b08000;">0x73A2_F</span><span style="color:#ca60ca;">;</span>
0079 
0080     <span style="font-weight:bold;">let</span> char1<span style="color:#ca60ca;">:</span> <span style="color:#0057ae;">char</span> <span style="color:#ca60ca;">=</span> <span style="color:#924c9d;">'a'</span><span style="color:#ca60ca;">;</span>
0081     <span style="font-weight:bold;">let</span> char2<span style="color:#ca60ca;">:</span> <span style="color:#0057ae;">char</span> <span style="color:#ca60ca;">=</span> <span style="color:#924c9d;">'</span><span style="color:#3daee9;">\n</span><span style="color:#924c9d;">'</span><span style="color:#ca60ca;">;</span>
0082     <span style="font-weight:bold;">let</span> char3<span style="color:#ca60ca;">:</span> <span style="color:#0057ae;">char</span> <span style="color:#ca60ca;">=</span> <span style="color:#924c9d;">'</span><span style="color:#3daee9;">\u{123_AF}</span><span style="color:#924c9d;">'</span><span style="color:#ca60ca;">;</span>
0083 
0084     <span style="font-weight:bold;">let</span> byte1<span style="color:#ca60ca;">:</span> <span style="color:#0057ae;">u8</span> <span style="color:#ca60ca;">=</span> <span style="color:#924c9d;">b'a'</span><span style="color:#ca60ca;">;</span>
0085     <span style="font-weight:bold;">let</span> byte2<span style="color:#ca60ca;">:</span> <span style="color:#0057ae;">u8</span> <span style="color:#ca60ca;">=</span> <span style="color:#924c9d;">b'</span><span style="color:#3daee9;">\x13</span><span style="color:#924c9d;">'</span><span style="color:#ca60ca;">;</span>
0086 
0087     <span style="font-weight:bold;">let</span> string<span style="color:#ca60ca;">:</span> <span style="color:#0057ae;">str</span> <span style="color:#ca60ca;">=</span> <span style="color:#bf0303;">&quot;hello </span><span style="color:#3daee9;">\n</span><span style="color:#bf0303;"> </span><span style="color:#3daee9;">\r</span><span style="color:#bf0303;"> </span><span style="color:#3daee9;">\u{123_________fd_}</span><span style="color:#bf0303;"> </span><span style="color:#3daee9;">\</span>
0088 <span style="color:#bf0303;">                       bye&quot;</span><span style="color:#ca60ca;">;</span>
0089     <span style="font-weight:bold;">let</span> byte_string<span style="color:#ca60ca;">:</span> <span style="color:#0057ae;">str</span> <span style="color:#ca60ca;">=</span> <span style="color:#bf0303;">b&quot;hello </span><span style="color:#3daee9;">\t</span><span style="color:#bf0303;"> </span><span style="color:#3daee9;">\0</span><span style="color:#bf0303;"> </span><span style="color:#3daee9;">\</span><span style="color:#bf0303;text-decoration:underline;">u</span><span style="color:#bf0303;">{123} </span><span style="color:#3daee9;">\</span><span style="color:#bf0303;text-decoration:underline;">b</span><span style="color:#bf0303;"> bye&quot;</span><span style="color:#ca60ca;">;</span>
0090     <span style="font-weight:bold;">let</span> raw_string1<span style="color:#ca60ca;">:</span> <span style="color:#0057ae;">str</span> <span style="color:#ca60ca;">=</span> <span style="color:#bf0303;">r&quot;hello \t \b&quot;</span><span style="color:#ca60ca;">;</span>
0091     <span style="font-weight:bold;">let</span> raw_string2<span style="color:#ca60ca;">:</span> <span style="color:#0057ae;">str</span> <span style="color:#ca60ca;">=</span> <span style="color:#bf0303;">r####&quot;hello \n &quot;### bye&quot;####</span>####<span style="color:#ca60ca;">;</span>
0092     <span style="font-weight:bold;">let</span> raw_string3<span style="color:#ca60ca;">:</span> <span style="color:#0057ae;">str</span> <span style="color:#ca60ca;">=</span> <span style="color:#bf0303;">br####&quot;hello \n&quot;####</span><span style="color:#ca60ca;">;</span>
0093 
0094     <span style="color:#898887;">// Invalid</span>
0095 
0096     <span style="font-weight:bold;">let</span> invalid_binary<span style="color:#ca60ca;">=</span> <span style="color:#bf0303;text-decoration:underline;">0b1_015</span><span style="color:#ca60ca;">;</span>
0097     <span style="font-weight:bold;">let</span> invalid_octal <span style="color:#ca60ca;">=</span> <span style="color:#bf0303;text-decoration:underline;">0o64_92</span><span style="color:#ca60ca;">;</span>
0098     <span style="font-weight:bold;">let</span> invalid_hexadecimal <span style="color:#ca60ca;">=</span> <span style="color:#bf0303;text-decoration:underline;">0x7_3AY</span><span style="color:#ca60ca;">;</span>
0099 
0100     <span style="font-weight:bold;">let</span> invalid_char1<span style="color:#ca60ca;">:</span> <span style="color:#0057ae;">char</span> <span style="color:#ca60ca;">=</span> <span style="color:#924c9d;">'</span><span style="color:#bf0303;text-decoration:underline;">\y</span><span style="color:#924c9d;">'</span><span style="color:#ca60ca;">;</span>
0101     <span style="font-weight:bold;">let</span> invalid_char2<span style="color:#ca60ca;">:</span> <span style="color:#0057ae;">char</span> <span style="color:#ca60ca;">=</span> <span style="color:#924c9d;">'</span><span style="color:#bf0303;text-decoration:underline;">\324</span><span style="color:#924c9d;">'</span><span style="color:#ca60ca;">;</span>
0102     <span style="font-weight:bold;">let</span> invalid_char3<span style="color:#ca60ca;">:</span> <span style="color:#0057ae;">char</span> <span style="color:#ca60ca;">=</span> <span style="color:#924c9d;">'</span><span style="color:#bf0303;text-decoration:underline;">%%</span><span style="color:#924c9d;">'</span><span style="color:#ca60ca;">;</span>
0103     <span style="font-weight:bold;">let</span> invalid_char4<span style="color:#ca60ca;">:</span> <span style="color:#0057ae;">char</span> <span style="color:#ca60ca;">=</span> <span style="color:#924c9d;">'</span><span style="color:#bf0303;text-decoration:underline;">\n\dfd</span><span style="color:#924c9d;">'</span><span style="color:#ca60ca;">;</span>
0104     <span style="font-weight:bold;">let</span> invalid_char5<span style="color:#ca60ca;">:</span> <span style="color:#0057ae;">char</span> <span style="color:#ca60ca;">=</span> <span style="color:#006e28;">'aaaa</span>a<span style="color:#924c9d;">'</span><span style="color:#ca60ca;">;</span>
0105     <span style="font-weight:bold;">let</span> open_char<span style="color:#ca60ca;">:</span> <span style="color:#0057ae;">char</span> <span style="color:#ca60ca;">=</span> <span style="color:#924c9d;">'</span><span style="color:#ca60ca;">&amp;&amp;&amp;;</span>
0106 
0107     <span style="font-weight:bold;">let</span> invalid_byte1<span style="color:#ca60ca;">:</span> <span style="color:#0057ae;">u8</span> <span style="color:#ca60ca;">=</span> b<span style="color:#006e28;">'a</span>b<span style="color:#924c9d;">'</span><span style="color:#ca60ca;">;</span>
0108     <span style="font-weight:bold;">let</span> invalid_byte2<span style="color:#ca60ca;">:</span> <span style="color:#0057ae;">u8</span> <span style="color:#ca60ca;">=</span> b<span style="color:#924c9d;">'</span><span style="color:#bf0303;text-decoration:underline;">\b</span><span style="color:#924c9d;">'</span><span style="color:#ca60ca;">;</span>
0109     <span style="font-weight:bold;">let</span> invalid_byte2<span style="color:#ca60ca;">:</span> <span style="color:#0057ae;">u8</span> <span style="color:#ca60ca;">=</span> b<span style="color:#924c9d;">'</span><span style="color:#3daee9;">\u{123}</span><span style="color:#924c9d;">'</span><span style="color:#ca60ca;">;</span>
0110 
0111     <span style="font-weight:bold;">let</span> invalid_string<span style="color:#ca60ca;">:</span> <span style="color:#0057ae;">str</span> <span style="color:#ca60ca;">=</span> <span style="color:#bf0303;">&quot;hello </span><span style="color:#3daee9;">\</span><span style="color:#bf0303;text-decoration:underline;">b</span><span style="color:#bf0303;"> </span><span style="color:#3daee9;">\</span><span style="color:#bf0303;text-decoration:underline;">u</span><span style="color:#bf0303;">{_123} </span><span style="color:#3daee9;">\</span><span style="color:#bf0303;text-decoration:underline;">u</span><span style="color:#bf0303;">{1234567} </span><span style="color:#3daee9;">\</span><span style="color:#bf0303;text-decoration:underline;"> </span><span style="color:#bf0303;"> bye&quot;</span><span style="color:#ca60ca;">;</span>
0112 <span style="color:#ca60ca;">}</span>
0113 
0114 <span style="color:#898887;">//ControlFlow-specific keywords</span>
0115 <span style="font-weight:bold;">fn</span> controlflow(y<span style="color:#ca60ca;">:</span> <span style="color:#0057ae;">Vec</span><span style="color:#ca60ca;">&lt;</span><span style="color:#0057ae;">usize</span><span style="color:#ca60ca;">&gt;</span>) <span style="color:#ca60ca;">-&gt;</span> <span style="color:#0057ae;">usize</span> <span style="color:#ca60ca;">{</span>
0116     <span style="font-weight:bold;">let</span> <span style="font-weight:bold;">mut</span> x <span style="color:#ca60ca;">=</span> <span style="color:#b08000;">0</span><span style="color:#ca60ca;">;</span>
0117     <span style="font-weight:bold;">while</span> x <span style="color:#ca60ca;">&lt;</span> <span style="color:#b08000;">10</span> <span style="color:#ca60ca;">{</span>
0118         <span style="font-weight:bold;">if</span> x <span style="color:#ca60ca;">&gt;</span> <span style="color:#b08000;">5</span> <span style="color:#ca60ca;">{</span>
0119             x <span style="color:#ca60ca;">=</span> <span style="color:#b08000;">1</span><span style="color:#ca60ca;">;</span>
0120         <span style="color:#ca60ca;">}</span>
0121         <span style="font-weight:bold;">else</span> <span style="color:#ca60ca;">{</span>
0122             <span style="font-weight:bold;">return</span> <span style="color:#b08000;">5</span>
0123         <span style="color:#ca60ca;">}</span>
0124     <span style="color:#ca60ca;">}</span>
0125     <span style="font-weight:bold;">loop</span> <span style="color:#ca60ca;">{</span>
0126         x<span style="color:#ca60ca;">+=</span> <span style="color:#b08000;">1</span><span style="color:#ca60ca;">;</span>
0127         <span style="font-weight:bold;">break</span><span style="color:#ca60ca;">;</span>
0128     <span style="color:#ca60ca;">}</span>
0129     <span style="font-weight:bold;">for</span> z <span style="font-weight:bold;">in</span> y <span style="color:#ca60ca;">{</span>
0130         <span style="font-weight:bold;">match</span> z <span style="color:#ca60ca;">{</span>
0131             <span style="color:#b08000;">1</span> <span style="color:#ca60ca;">=&gt;</span> <span style="font-weight:bold;">continue</span><span style="color:#ca60ca;">,</span>
0132             _ <span style="color:#ca60ca;">=&gt;</span> x <span style="color:#ca60ca;">=</span> <span style="color:#b08000;">2</span><span style="color:#ca60ca;">,</span>
0133         <span style="color:#ca60ca;">}</span>
0134     <span style="color:#ca60ca;">}</span>
0135     x
0136 <span style="color:#ca60ca;">}</span>
0137 </pre></body></html>