4 pre { color: #DCDCCC; background: #
3F3F3F; font-size:
22px; padding:
0.4em; }
6 .lifetime { color: #DFAF8F; font-style: italic; }
7 .label { color: #DFAF8F; font-style: italic; }
8 .comment { color: #
7F9F7F; }
9 .documentation { color: #
629755; }
10 .intra_doc_link { font-style: italic; }
11 .injected { opacity:
0.65 ; }
12 .struct, .enum { color: #
7CB8BB; }
13 .enum_variant { color: #BDE0F3; }
14 .string_literal { color: #CC9393; }
15 .field { color: #
94BFF3; }
16 .function { color: #
93E0E3; }
17 .function.unsafe { color: #BC8383; }
18 .trait.unsafe { color: #BC8383; }
19 .operator.unsafe { color: #BC8383; }
20 .mutable.unsafe { color: #BC8383; text-decoration: underline; }
21 .keyword.unsafe { color: #BC8383; font-weight: bold; }
22 .macro.unsafe { color: #BC8383; }
23 .parameter { color: #
94BFF3; }
24 .text { color: #DCDCCC; }
25 .type { color: #
7CB8BB; }
26 .builtin_type { color: #
8CD0D3; }
27 .type_param { color: #DFAF8F; }
28 .attribute { color: #
94BFF3; }
29 .numeric_literal { color: #BFEBBF; }
30 .bool_literal { color: #BFE6EB; }
31 .macro { color: #
94BFF3; }
32 .derive { color: #
94BFF3; font-style: italic; }
33 .module { color: #AFD8AF; }
34 .value_param { color: #DCDCCC; }
35 .variable { color: #DCDCCC; }
36 .format_specifier { color: #CC696B; }
37 .mutable { text-decoration: underline; }
38 .escape_sequence { color: #
94BFF3; }
39 .keyword { color: #F0DFAF; font-weight: bold; }
40 .control { font-style: italic; }
41 .reference { font-style: italic; font-weight: bold; }
43 .unresolved_reference { color: #FC5555; text-decoration: wavy underline; }
45 <pre><code><span class=
"keyword">use
</span> <span class=
"module">inner
</span><span class=
"operator">::
</span><span class=
"brace">{
</span><span class=
"self_keyword">self
</span> <span class=
"keyword">as
</span> <span class=
"module declaration">inner_mod
</span><span class=
"brace">}
</span><span class=
"semicolon">;
</span>
46 <span class=
"keyword">mod
</span> <span class=
"module declaration">inner
</span> <span class=
"brace">{
</span><span class=
"brace">}
</span>
48 <span class=
"keyword">pub
</span> <span class=
"keyword">mod
</span> <span class=
"module declaration public">ops
</span> <span class=
"brace">{
</span>
49 <span class=
"attribute_bracket attribute">#
</span><span class=
"attribute_bracket attribute">[
</span><span class=
"builtin_attr attribute library">lang
</span> <span class=
"operator attribute">=
</span> <span class=
"string_literal attribute">"fn_once"</span><span class=
"attribute_bracket attribute">]
</span>
50 <span class=
"keyword">pub
</span> <span class=
"keyword">trait
</span> <span class=
"trait declaration public">FnOnce
</span><span class=
"angle"><</span><span class=
"type_param declaration">Args
</span><span class=
"angle">></span> <span class=
"brace">{
</span><span class=
"brace">}
</span>
52 <span class=
"attribute_bracket attribute">#
</span><span class=
"attribute_bracket attribute">[
</span><span class=
"builtin_attr attribute library">lang
</span> <span class=
"operator attribute">=
</span> <span class=
"string_literal attribute">"fn_mut"</span><span class=
"attribute_bracket attribute">]
</span>
53 <span class=
"keyword">pub
</span> <span class=
"keyword">trait
</span> <span class=
"trait declaration public">FnMut
</span><span class=
"angle"><</span><span class=
"type_param declaration">Args
</span><span class=
"angle">></span><span class=
"colon">:
</span> <span class=
"trait public">FnOnce
</span><span class=
"angle"><</span><span class=
"type_param">Args
</span><span class=
"angle">></span> <span class=
"brace">{
</span><span class=
"brace">}
</span>
55 <span class=
"attribute_bracket attribute">#
</span><span class=
"attribute_bracket attribute">[
</span><span class=
"builtin_attr attribute library">lang
</span> <span class=
"operator attribute">=
</span> <span class=
"string_literal attribute">"fn"</span><span class=
"attribute_bracket attribute">]
</span>
56 <span class=
"keyword">pub
</span> <span class=
"keyword">trait
</span> <span class=
"trait declaration public">Fn
</span><span class=
"angle"><</span><span class=
"type_param declaration">Args
</span><span class=
"angle">></span><span class=
"colon">:
</span> <span class=
"trait public">FnMut
</span><span class=
"angle"><</span><span class=
"type_param">Args
</span><span class=
"angle">></span> <span class=
"brace">{
</span><span class=
"brace">}
</span>
57 <span class=
"brace">}
</span>
59 <span class=
"keyword">struct
</span> <span class=
"struct declaration">Foo
</span> <span class=
"brace">{
</span>
60 <span class=
"field declaration">x
</span><span class=
"colon">:
</span> <span class=
"builtin_type">u32
</span><span class=
"comma">,
</span>
61 <span class=
"brace">}
</span>
63 <span class=
"keyword">trait
</span> <span class=
"trait declaration">Bar
</span> <span class=
"brace">{
</span>
64 <span class=
"keyword">fn
</span> <span class=
"function associated declaration reference trait">bar
</span><span class=
"parenthesis">(
</span><span class=
"operator">&
</span><span class=
"self_keyword declaration reference">self
</span><span class=
"parenthesis">)
</span> <span class=
"operator">-
></span> <span class=
"builtin_type">i32
</span><span class=
"semicolon">;
</span>
65 <span class=
"brace">}
</span>
67 <span class=
"keyword">impl
</span> <span class=
"trait">Bar
</span> <span class=
"keyword">for
</span> <span class=
"struct">Foo
</span> <span class=
"brace">{
</span>
68 <span class=
"keyword">fn
</span> <span class=
"function associated declaration reference trait">bar
</span><span class=
"parenthesis">(
</span><span class=
"operator">&
</span><span class=
"self_keyword declaration reference">self
</span><span class=
"parenthesis">)
</span> <span class=
"operator">-
></span> <span class=
"builtin_type">i32
</span> <span class=
"brace">{
</span>
69 <span class=
"self_keyword reference">self
</span><span class=
"operator">.
</span><span class=
"field">x
</span>
70 <span class=
"brace">}
</span>
71 <span class=
"brace">}
</span>
73 <span class=
"keyword">impl
</span> <span class=
"struct">Foo
</span> <span class=
"brace">{
</span>
74 <span class=
"keyword">fn
</span> <span class=
"function associated consuming declaration">baz
</span><span class=
"parenthesis">(
</span><span class=
"keyword">mut
</span> <span class=
"self_keyword declaration mutable">self
</span><span class=
"comma">,
</span> <span class=
"value_param declaration">f
</span><span class=
"colon">:
</span> <span class=
"struct">Foo
</span><span class=
"parenthesis">)
</span> <span class=
"operator">-
></span> <span class=
"builtin_type">i32
</span> <span class=
"brace">{
</span>
75 <span class=
"value_param">f
</span><span class=
"operator">.
</span><span class=
"function associated consuming">baz
</span><span class=
"parenthesis">(
</span><span class=
"self_keyword consuming mutable">self
</span><span class=
"parenthesis">)
</span>
76 <span class=
"brace">}
</span>
78 <span class=
"keyword">fn
</span> <span class=
"function associated declaration mutable reference">qux
</span><span class=
"parenthesis">(
</span><span class=
"operator">&
</span><span class=
"keyword">mut
</span> <span class=
"self_keyword declaration mutable reference">self
</span><span class=
"parenthesis">)
</span> <span class=
"brace">{
</span>
79 <span class=
"self_keyword mutable reference">self
</span><span class=
"operator">.
</span><span class=
"field">x
</span> <span class=
"operator">=
</span> <span class=
"numeric_literal">0</span><span class=
"semicolon">;
</span>
80 <span class=
"brace">}
</span>
82 <span class=
"keyword">fn
</span> <span class=
"function associated declaration reference">quop
</span><span class=
"parenthesis">(
</span><span class=
"operator">&
</span><span class=
"self_keyword declaration reference">self
</span><span class=
"parenthesis">)
</span> <span class=
"operator">-
></span> <span class=
"builtin_type">i32
</span> <span class=
"brace">{
</span>
83 <span class=
"self_keyword reference">self
</span><span class=
"operator">.
</span><span class=
"field">x
</span>
84 <span class=
"brace">}
</span>
85 <span class=
"brace">}
</span>
87 <span class=
"keyword">use
</span> <span class=
"self_keyword crate_root public">self
</span><span class=
"operator">::
</span><span class=
"struct">FooCopy
</span><span class=
"operator">::
</span><span class=
"brace">{
</span><span class=
"self_keyword">self
</span> <span class=
"keyword">as
</span> <span class=
"struct declaration">BarCopy
</span><span class=
"brace">}
</span><span class=
"semicolon">;
</span>
89 <span class=
"attribute_bracket attribute">#
</span><span class=
"attribute_bracket attribute">[
</span><span class=
"attribute attribute default_library library">derive
</span><span class=
"parenthesis attribute">(
</span><span class=
"derive attribute default_library library">Copy
</span><span class=
"parenthesis attribute">)
</span><span class=
"attribute_bracket attribute">]
</span>
90 <span class=
"keyword">struct
</span> <span class=
"struct declaration">FooCopy
</span> <span class=
"brace">{
</span>
91 <span class=
"field declaration">x
</span><span class=
"colon">:
</span> <span class=
"builtin_type">u32
</span><span class=
"comma">,
</span>
92 <span class=
"brace">}
</span>
94 <span class=
"keyword">impl
</span> <span class=
"struct">FooCopy
</span> <span class=
"brace">{
</span>
95 <span class=
"keyword">fn
</span> <span class=
"function associated consuming declaration">baz
</span><span class=
"parenthesis">(
</span><span class=
"self_keyword declaration">self
</span><span class=
"comma">,
</span> <span class=
"value_param declaration">f
</span><span class=
"colon">:
</span> <span class=
"struct">FooCopy
</span><span class=
"parenthesis">)
</span> <span class=
"operator">-
></span> <span class=
"builtin_type">u32
</span> <span class=
"brace">{
</span>
96 <span class=
"value_param">f
</span><span class=
"operator">.
</span><span class=
"function associated">baz
</span><span class=
"parenthesis">(
</span><span class=
"self_keyword">self
</span><span class=
"parenthesis">)
</span>
97 <span class=
"brace">}
</span>
99 <span class=
"keyword">fn
</span> <span class=
"function associated declaration mutable reference">qux
</span><span class=
"parenthesis">(
</span><span class=
"operator">&
</span><span class=
"keyword">mut
</span> <span class=
"self_keyword declaration mutable reference">self
</span><span class=
"parenthesis">)
</span> <span class=
"brace">{
</span>
100 <span class=
"self_keyword mutable reference">self
</span><span class=
"operator">.
</span><span class=
"field">x
</span> <span class=
"operator">=
</span> <span class=
"numeric_literal">0</span><span class=
"semicolon">;
</span>
101 <span class=
"brace">}
</span>
103 <span class=
"keyword">fn
</span> <span class=
"function associated declaration reference">quop
</span><span class=
"parenthesis">(
</span><span class=
"operator">&
</span><span class=
"self_keyword declaration reference">self
</span><span class=
"parenthesis">)
</span> <span class=
"operator">-
></span> <span class=
"builtin_type">u32
</span> <span class=
"brace">{
</span>
104 <span class=
"self_keyword reference">self
</span><span class=
"operator">.
</span><span class=
"field">x
</span>
105 <span class=
"brace">}
</span>
106 <span class=
"brace">}
</span>
108 <span class=
"keyword">fn
</span> <span class=
"function declaration">str
</span><span class=
"parenthesis">(
</span><span class=
"parenthesis">)
</span> <span class=
"brace">{
</span>
109 <span class=
"function">str
</span><span class=
"parenthesis">(
</span><span class=
"parenthesis">)
</span><span class=
"semicolon">;
</span>
110 <span class=
"brace">}
</span>
112 <span class=
"keyword">fn
</span> <span class=
"function declaration">foo
</span><span class=
"angle"><</span><span class=
"lifetime declaration">'a
</span><span class=
"comma">,
</span> <span class=
"type_param declaration">T
</span><span class=
"angle">></span><span class=
"parenthesis">(
</span><span class=
"parenthesis">)
</span> <span class=
"operator">-
></span> <span class=
"type_param">T
</span> <span class=
"brace">{
</span>
113 <span class=
"function">foo
</span><span class=
"operator">::
</span><span class=
"angle"><</span><span class=
"lifetime">'a
</span><span class=
"comma">,
</span> <span class=
"builtin_type">i32
</span><span class=
"angle">></span><span class=
"parenthesis">(
</span><span class=
"parenthesis">)
</span>
114 <span class=
"brace">}
</span>
116 <span class=
"keyword">fn
</span> <span class=
"function declaration">never
</span><span class=
"parenthesis">(
</span><span class=
"parenthesis">)
</span> <span class=
"operator">-
></span> <span class=
"builtin_type">!
</span> <span class=
"brace">{
</span>
117 <span class=
"keyword control">loop
</span> <span class=
"brace">{
</span><span class=
"brace">}
</span>
118 <span class=
"brace">}
</span>
120 <span class=
"keyword">fn
</span> <span class=
"function declaration">const_param
</span><span class=
"angle"><</span><span class=
"keyword">const
</span> <span class=
"const_param declaration">FOO
</span><span class=
"colon">:
</span> <span class=
"builtin_type">usize
</span><span class=
"angle">></span><span class=
"parenthesis">(
</span><span class=
"parenthesis">)
</span> <span class=
"operator">-
></span> <span class=
"builtin_type">usize
</span> <span class=
"brace">{
</span>
121 <span class=
"function">const_param
</span><span class=
"operator">::
</span><span class=
"angle"><</span><span class=
"brace">{
</span> <span class=
"const_param">FOO
</span> <span class=
"brace">}
</span><span class=
"angle">></span><span class=
"parenthesis">(
</span><span class=
"parenthesis">)
</span><span class=
"semicolon">;
</span>
122 <span class=
"const_param">FOO
</span>
123 <span class=
"brace">}
</span>
125 <span class=
"keyword">use
</span> <span class=
"module public">ops
</span><span class=
"operator">::
</span><span class=
"trait public">Fn
</span><span class=
"semicolon">;
</span>
126 <span class=
"keyword">fn
</span> <span class=
"function declaration">baz
</span><span class=
"angle"><</span><span class=
"type_param declaration">F
</span><span class=
"colon">:
</span> <span class=
"trait public">Fn
</span><span class=
"parenthesis">(
</span><span class=
"parenthesis">)
</span> <span class=
"operator">-
></span> <span class=
"parenthesis">(
</span><span class=
"parenthesis">)
</span><span class=
"angle">></span><span class=
"parenthesis">(
</span><span class=
"value_param callable declaration">f
</span><span class=
"colon">:
</span> <span class=
"type_param">F
</span><span class=
"parenthesis">)
</span> <span class=
"brace">{
</span>
127 <span class=
"value_param callable">f
</span><span class=
"parenthesis">(
</span><span class=
"parenthesis">)
</span>
128 <span class=
"brace">}
</span>
130 <span class=
"keyword">fn
</span> <span class=
"function declaration">foobar
</span><span class=
"parenthesis">(
</span><span class=
"parenthesis">)
</span> <span class=
"operator">-
></span> <span class=
"keyword">impl
</span> <span class=
"trait default_library library">Copy
</span> <span class=
"brace">{
</span><span class=
"brace">}
</span>
132 <span class=
"keyword">fn
</span> <span class=
"function declaration">foo
</span><span class=
"parenthesis">(
</span><span class=
"parenthesis">)
</span> <span class=
"brace">{
</span>
133 <span class=
"keyword">let
</span> <span class=
"variable declaration">bar
</span> <span class=
"operator">=
</span> <span class=
"function">foobar
</span><span class=
"parenthesis">(
</span><span class=
"parenthesis">)
</span><span class=
"semicolon">;
</span>
134 <span class=
"brace">}
</span>
136 <span class=
"comment">// comment
</span>
137 <span class=
"keyword">fn
</span> <span class=
"function declaration">main
</span><span class=
"parenthesis">(
</span><span class=
"parenthesis">)
</span> <span class=
"brace">{
</span>
138 <span class=
"keyword">let
</span> <span class=
"keyword">mut
</span> <span class=
"variable declaration mutable">x
</span> <span class=
"operator">=
</span> <span class=
"numeric_literal">42</span><span class=
"semicolon">;
</span>
139 <span class=
"variable mutable">x
</span> <span class=
"arithmetic mutable">+=
</span> <span class=
"numeric_literal">1</span><span class=
"semicolon">;
</span>
140 <span class=
"keyword">let
</span> <span class=
"variable declaration mutable reference">y
</span> <span class=
"operator">=
</span> <span class=
"operator">&
</span><span class=
"keyword">mut
</span> <span class=
"variable mutable">x
</span><span class=
"semicolon">;
</span>
141 <span class=
"keyword">let
</span> <span class=
"variable declaration reference">z
</span> <span class=
"operator">=
</span> <span class=
"operator">&
</span><span class=
"variable mutable reference">y
</span><span class=
"semicolon">;
</span>
143 <span class=
"keyword">let
</span> <span class=
"struct">Foo
</span> <span class=
"brace">{
</span> <span class=
"field">x
</span><span class=
"colon">:
</span> <span class=
"variable declaration">z
</span><span class=
"comma">,
</span> <span class=
"variable declaration">y
</span> <span class=
"brace">}
</span> <span class=
"operator">=
</span> <span class=
"struct">Foo
</span> <span class=
"brace">{
</span> <span class=
"field">x
</span><span class=
"colon">:
</span> <span class=
"variable reference">z
</span><span class=
"comma">,
</span> <span class=
"variable mutable reference">y
</span> <span class=
"brace">}
</span><span class=
"semicolon">;
</span>
145 <span class=
"variable">y
</span><span class=
"semicolon">;
</span>
147 <span class=
"keyword">let
</span> <span class=
"keyword">mut
</span> <span class=
"variable declaration mutable">foo
</span> <span class=
"operator">=
</span> <span class=
"struct">Foo
</span> <span class=
"brace">{
</span> <span class=
"field">x
</span><span class=
"comma">,
</span> <span class=
"unresolved_reference">y
</span><span class=
"colon">:
</span> <span class=
"variable mutable">x
</span> <span class=
"brace">}
</span><span class=
"semicolon">;
</span>
148 <span class=
"keyword">let
</span> <span class=
"variable declaration">foo2
</span> <span class=
"operator">=
</span> <span class=
"struct">Foo
</span> <span class=
"brace">{
</span> <span class=
"field">x
</span><span class=
"comma">,
</span> <span class=
"unresolved_reference">y
</span><span class=
"colon">:
</span> <span class=
"variable mutable">x
</span> <span class=
"brace">}
</span><span class=
"semicolon">;
</span>
149 <span class=
"variable mutable">foo
</span><span class=
"operator">.
</span><span class=
"function associated reference">quop
</span><span class=
"parenthesis">(
</span><span class=
"parenthesis">)
</span><span class=
"semicolon">;
</span>
150 <span class=
"variable mutable">foo
</span><span class=
"operator">.
</span><span class=
"function associated mutable reference">qux
</span><span class=
"parenthesis">(
</span><span class=
"parenthesis">)
</span><span class=
"semicolon">;
</span>
151 <span class=
"variable mutable">foo
</span><span class=
"operator">.
</span><span class=
"function associated consuming">baz
</span><span class=
"parenthesis">(
</span><span class=
"variable consuming">foo2
</span><span class=
"parenthesis">)
</span><span class=
"semicolon">;
</span>
153 <span class=
"keyword">let
</span> <span class=
"keyword">mut
</span> <span class=
"variable declaration mutable">copy
</span> <span class=
"operator">=
</span> <span class=
"struct">FooCopy
</span> <span class=
"brace">{
</span> <span class=
"field">x
</span> <span class=
"brace">}
</span><span class=
"semicolon">;
</span>
154 <span class=
"variable mutable">copy
</span><span class=
"operator">.
</span><span class=
"function associated reference">quop
</span><span class=
"parenthesis">(
</span><span class=
"parenthesis">)
</span><span class=
"semicolon">;
</span>
155 <span class=
"variable mutable">copy
</span><span class=
"operator">.
</span><span class=
"function associated mutable reference">qux
</span><span class=
"parenthesis">(
</span><span class=
"parenthesis">)
</span><span class=
"semicolon">;
</span>
156 <span class=
"variable mutable">copy
</span><span class=
"operator">.
</span><span class=
"function associated">baz
</span><span class=
"parenthesis">(
</span><span class=
"variable mutable">copy
</span><span class=
"parenthesis">)
</span><span class=
"semicolon">;
</span>
158 <span class=
"keyword">let
</span> <span class=
"variable callable declaration">a
</span> <span class=
"operator">=
</span> <span class=
"punctuation">|
</span><span class=
"value_param declaration">x
</span><span class=
"punctuation">|
</span> <span class=
"value_param">x
</span><span class=
"semicolon">;
</span>
159 <span class=
"keyword">let
</span> <span class=
"variable callable declaration">bar
</span> <span class=
"operator">=
</span> <span class=
"struct">Foo
</span><span class=
"operator">::
</span><span class=
"function associated consuming">baz
</span><span class=
"semicolon">;
</span>
161 <span class=
"keyword">let
</span> <span class=
"variable declaration">baz
</span> <span class=
"operator">=
</span> <span class=
"parenthesis">(
</span><span class=
"numeric_literal">-
</span><span class=
"numeric_literal">42</span><span class=
"comma">,
</span><span class=
"parenthesis">)
</span><span class=
"semicolon">;
</span>
162 <span class=
"keyword">let
</span> <span class=
"variable declaration">baz
</span> <span class=
"operator">=
</span> <span class=
"operator">-
</span><span class=
"variable">baz
</span><span class=
"operator">.
</span><span class=
"field">0</span><span class=
"semicolon">;
</span>
164 <span class=
"keyword">let
</span> <span class=
"punctuation">_
</span> <span class=
"operator">=
</span> <span class=
"logical">!
</span><span class=
"bool_literal">true
</span><span class=
"semicolon">;
</span>
166 <span class=
"label declaration">'foo
</span><span class=
"colon">:
</span> <span class=
"keyword control">loop
</span> <span class=
"brace">{
</span>
167 <span class=
"keyword control">break
</span> <span class=
"label">'foo
</span><span class=
"semicolon">;
</span>
168 <span class=
"keyword control">continue
</span> <span class=
"label">'foo
</span><span class=
"semicolon">;
</span>
169 <span class=
"brace">}
</span>
170 <span class=
"brace">}
</span>
172 <span class=
"keyword">enum
</span> <span class=
"enum declaration">Option
</span><span class=
"angle"><</span><span class=
"type_param declaration">T
</span><span class=
"angle">></span> <span class=
"brace">{
</span>
173 <span class=
"enum_variant declaration">Some
</span><span class=
"parenthesis">(
</span><span class=
"type_param">T
</span><span class=
"parenthesis">)
</span><span class=
"comma">,
</span>
174 <span class=
"enum_variant declaration">None
</span><span class=
"comma">,
</span>
175 <span class=
"brace">}
</span>
176 <span class=
"keyword">use
</span> <span class=
"enum">Option
</span><span class=
"operator">::
</span><span class=
"punctuation">*
</span><span class=
"semicolon">;
</span>
178 <span class=
"keyword">impl
</span><span class=
"angle"><</span><span class=
"type_param declaration">T
</span><span class=
"angle">></span> <span class=
"enum">Option
</span><span class=
"angle"><</span><span class=
"type_param">T
</span><span class=
"angle">></span> <span class=
"brace">{
</span>
179 <span class=
"keyword">fn
</span> <span class=
"function associated consuming declaration">and
</span><span class=
"angle"><</span><span class=
"type_param declaration">U
</span><span class=
"angle">></span><span class=
"parenthesis">(
</span><span class=
"self_keyword declaration">self
</span><span class=
"comma">,
</span> <span class=
"value_param declaration">other
</span><span class=
"colon">:
</span> <span class=
"enum">Option
</span><span class=
"angle"><</span><span class=
"type_param">U
</span><span class=
"angle">></span><span class=
"parenthesis">)
</span> <span class=
"operator">-
></span> <span class=
"enum">Option
</span><span class=
"angle"><</span><span class=
"parenthesis">(
</span><span class=
"type_param">T
</span><span class=
"comma">,
</span> <span class=
"type_param">U
</span><span class=
"parenthesis">)
</span><span class=
"angle">></span> <span class=
"brace">{
</span>
180 <span class=
"keyword control">match
</span> <span class=
"value_param">other
</span> <span class=
"brace">{
</span>
181 <span class=
"enum_variant">None
</span> <span class=
"operator">=
></span> <span class=
"unresolved_reference">unimplemented
</span><span class=
"macro_bang">!
</span><span class=
"parenthesis">(
</span><span class=
"parenthesis">)
</span><span class=
"comma">,
</span>
182 <span class=
"variable declaration">Nope
</span> <span class=
"operator">=
></span> <span class=
"variable">Nope
</span><span class=
"comma">,
</span>
183 <span class=
"brace">}
</span>
184 <span class=
"brace">}
</span>
185 <span class=
"brace">}
</span>
187 <span class=
"keyword async">async
</span> <span class=
"keyword">fn
</span> <span class=
"function async declaration">learn_and_sing
</span><span class=
"parenthesis">(
</span><span class=
"parenthesis">)
</span> <span class=
"brace">{
</span>
188 <span class=
"keyword">let
</span> <span class=
"variable declaration">song
</span> <span class=
"operator">=
</span> <span class=
"unresolved_reference">learn_song
</span><span class=
"parenthesis">(
</span><span class=
"parenthesis">)
</span><span class=
"operator">.
</span><span class=
"keyword async control">await
</span><span class=
"semicolon">;
</span>
189 <span class=
"unresolved_reference">sing_song
</span><span class=
"parenthesis">(
</span><span class=
"variable consuming">song
</span><span class=
"parenthesis">)
</span><span class=
"operator">.
</span><span class=
"keyword async control">await
</span><span class=
"semicolon">;
</span>
190 <span class=
"brace">}
</span>
192 <span class=
"keyword async">async
</span> <span class=
"keyword">fn
</span> <span class=
"function async declaration">async_main
</span><span class=
"parenthesis">(
</span><span class=
"parenthesis">)
</span> <span class=
"brace">{
</span>
193 <span class=
"keyword">let
</span> <span class=
"variable declaration">f1
</span> <span class=
"operator">=
</span> <span class=
"function async">learn_and_sing
</span><span class=
"parenthesis">(
</span><span class=
"parenthesis">)
</span><span class=
"semicolon">;
</span>
194 <span class=
"keyword">let
</span> <span class=
"variable declaration">f2
</span> <span class=
"operator">=
</span> <span class=
"unresolved_reference">dance
</span><span class=
"parenthesis">(
</span><span class=
"parenthesis">)
</span><span class=
"semicolon">;
</span>
195 <span class=
"unresolved_reference">futures
</span><span class=
"operator">::
</span><span class=
"unresolved_reference">join
</span><span class=
"macro_bang">!
</span><span class=
"parenthesis">(
</span>f1
<span class=
"comma">,
</span> f2
<span class=
"parenthesis">)
</span><span class=
"semicolon">;
</span>
196 <span class=
"brace">}
</span>
198 <span class=
"keyword">fn
</span> <span class=
"function declaration">use_foo_items
</span><span class=
"parenthesis">(
</span><span class=
"parenthesis">)
</span> <span class=
"brace">{
</span>
199 <span class=
"keyword">let
</span> <span class=
"variable declaration">bob
</span> <span class=
"operator">=
</span> <span class=
"module crate_root library">foo
</span><span class=
"operator">::
</span><span class=
"struct library">Person
</span> <span class=
"brace">{
</span>
200 <span class=
"field library">name
</span><span class=
"colon">:
</span> <span class=
"string_literal">"Bob"</span><span class=
"comma">,
</span>
201 <span class=
"field library">age
</span><span class=
"colon">:
</span> <span class=
"module crate_root library">foo
</span><span class=
"operator">::
</span><span class=
"module library">consts
</span><span class=
"operator">::
</span><span class=
"constant library">NUMBER
</span><span class=
"comma">,
</span>
202 <span class=
"brace">}
</span><span class=
"semicolon">;
</span>
204 <span class=
"keyword">let
</span> <span class=
"variable declaration">control_flow
</span> <span class=
"operator">=
</span> <span class=
"module crate_root library">foo
</span><span class=
"operator">::
</span><span class=
"function library">identity
</span><span class=
"parenthesis">(
</span><span class=
"module crate_root library">foo
</span><span class=
"operator">::
</span><span class=
"enum library">ControlFlow
</span><span class=
"operator">::
</span><span class=
"enum_variant library">Continue
</span><span class=
"parenthesis">)
</span><span class=
"semicolon">;
</span>
206 <span class=
"keyword control">if
</span> <span class=
"variable">control_flow
</span><span class=
"operator">.
</span><span class=
"function associated consuming library">should_die
</span><span class=
"parenthesis">(
</span><span class=
"parenthesis">)
</span> <span class=
"brace">{
</span>
207 <span class=
"module crate_root library">foo
</span><span class=
"operator">::
</span><span class=
"unresolved_reference">die
</span><span class=
"macro_bang">!
</span><span class=
"parenthesis">(
</span><span class=
"parenthesis">)
</span><span class=
"semicolon">;
</span>
208 <span class=
"brace">}
</span>
209 <span class=
"brace">}
</span>
211 <span class=
"keyword">pub
</span> <span class=
"keyword">enum
</span> <span class=
"enum declaration public">Bool
</span> <span class=
"brace">{
</span> <span class=
"enum_variant declaration public">True
</span><span class=
"comma">,
</span> <span class=
"enum_variant declaration public">False
</span> <span class=
"brace">}
</span>
213 <span class=
"keyword">impl
</span> <span class=
"enum public">Bool
</span> <span class=
"brace">{
</span>
214 <span class=
"keyword">pub
</span> <span class=
"keyword">const
</span> <span class=
"keyword">fn
</span> <span class=
"function associated consuming declaration public">to_primitive
</span><span class=
"parenthesis">(
</span><span class=
"self_keyword declaration">self
</span><span class=
"parenthesis">)
</span> <span class=
"operator">-
></span> <span class=
"builtin_type">bool
</span> <span class=
"brace">{
</span>
215 <span class=
"bool_literal">true
</span>
216 <span class=
"brace">}
</span>
217 <span class=
"brace">}
</span>
218 <span class=
"keyword">const
</span> <span class=
"constant declaration">USAGE_OF_BOOL
</span><span class=
"colon">:
</span><span class=
"builtin_type">bool
</span> <span class=
"operator">=
</span> <span class=
"enum public">Bool
</span><span class=
"operator">::
</span><span class=
"enum_variant public">True
</span><span class=
"operator">.
</span><span class=
"function associated consuming public">to_primitive
</span><span class=
"parenthesis">(
</span><span class=
"parenthesis">)
</span><span class=
"semicolon">;
</span>
220 <span class=
"keyword">trait
</span> <span class=
"trait declaration">Baz
</span> <span class=
"brace">{
</span>
221 <span class=
"keyword">type
</span> <span class=
"type_alias associated declaration trait">Qux
</span><span class=
"semicolon">;
</span>
222 <span class=
"brace">}
</span>
224 <span class=
"keyword">fn
</span> <span class=
"function declaration">baz
</span><span class=
"angle"><</span><span class=
"type_param declaration">T
</span><span class=
"angle">></span><span class=
"parenthesis">(
</span><span class=
"value_param declaration">t
</span><span class=
"colon">:
</span> <span class=
"type_param">T
</span><span class=
"parenthesis">)
</span>
225 <span class=
"keyword">where
</span>
226 <span class=
"type_param">T
</span><span class=
"colon">:
</span> <span class=
"trait">Baz
</span><span class=
"comma">,
</span>
227 <span class=
"angle"><</span><span class=
"type_param">T
</span> <span class=
"keyword">as
</span> <span class=
"trait">Baz
</span><span class=
"angle">></span><span class=
"operator">::
</span><span class=
"type_alias associated trait">Qux
</span><span class=
"colon">:
</span> <span class=
"trait">Bar
</span> <span class=
"brace">{
</span><span class=
"brace">}
</span>
229 <span class=
"keyword">fn
</span> <span class=
"function declaration">gp_shadows_trait
</span><span class=
"angle"><</span><span class=
"type_param declaration">Baz
</span><span class=
"colon">:
</span> <span class=
"trait">Bar
</span><span class=
"angle">></span><span class=
"parenthesis">(
</span><span class=
"parenthesis">)
</span> <span class=
"brace">{
</span>
230 <span class=
"type_param">Baz
</span><span class=
"operator">::
</span><span class=
"function associated reference trait">bar
</span><span class=
"semicolon">;
</span>
231 <span class=
"brace">}
</span>