33body { margin : 0 ; }
44pre { color : # DCDCCC ; background : # 3F3F3F ; font-size : 22px ; padding : 0.4em ; }
55
6-
6+ . lifetime { color : # DFAF8F ; font-style : italic; }
77.comment { color : # 7F9F7F ; }
88.struct , .enum { color : # 7CB8BB ; }
99.enum_variant { color : # BDE0F3 ; }
2727.control { font-style : italic; }
2828</ style >
2929< pre > < code > < span class ="attribute "> #</ span > < span class ="attribute "> [</ span > < span class ="attribute "> derive</ span > < span class ="attribute "> (</ span > < span class ="attribute "> Clone</ span > < span class ="attribute "> ,</ span > < span class ="attribute "> </ span > < span class ="attribute "> Debug</ span > < span class ="attribute "> )</ span > < span class ="attribute "> ]</ span >
30- < span class ="keyword "> struct</ span > < span class ="struct "> Foo</ span > {
31- < span class ="keyword "> pub</ span > < span class ="field "> x</ span > : < span class ="builtin_type "> i32</ span > ,
32- < span class ="keyword "> pub</ span > < span class ="field "> y</ span > : < span class ="builtin_type "> i32</ span > ,
30+ < span class ="keyword "> struct</ span > < span class ="struct declaration "> Foo</ span > {
31+ < span class ="keyword "> pub</ span > < span class ="field declaration "> x</ span > : < span class ="builtin_type "> i32</ span > ,
32+ < span class ="keyword "> pub</ span > < span class ="field declaration "> y</ span > : < span class ="builtin_type "> i32</ span > ,
3333}
3434
35- < span class ="keyword "> fn</ span > < span class ="function "> foo</ span > << span class ="type_param "> T</ span > >() -> < span class ="type_param "> T</ span > {
36- < span class ="macro "> unimplemented</ span > < span class ="macro "> !</ span > ();
37- < span class ="function "> foo</ span > ::<< span class ="builtin_type "> i32</ span > >();
35+ < span class ="keyword "> fn</ span > < span class ="function declaration "> foo</ span > << span class ="lifetime declaration "> 'a</ span > , < span class ="type_param declaration "> T</ span > >() -> < span class ="type_param "> T</ span > {
36+ < span class ="function "> foo</ span > ::<< span class ="lifetime "> 'a</ span > , < span class ="builtin_type "> i32</ span > >()
3837}
3938
4039< span class ="macro "> macro_rules</ span > < span class ="macro "> !</ span > def_fn {
4140 ($($tt:tt)*) => {$($tt)*}
4241}
4342
4443< span class ="macro "> def_fn</ span > < span class ="macro "> !</ span > {
45- < span class ="keyword "> fn</ span > < span class ="function "> bar</ span > () -> < span class ="builtin_type "> u32</ span > {
44+ < span class ="keyword "> fn</ span > < span class ="function declaration "> bar</ span > () -> < span class ="builtin_type "> u32</ span > {
4645 < span class ="numeric_literal "> 100</ span >
4746 }
4847}
4948
5049< span class ="comment "> // comment</ span >
51- < span class ="keyword "> fn</ span > < span class ="function "> main</ span > () {
50+ < span class ="keyword "> fn</ span > < span class ="function declaration "> main</ span > () {
5251 < span class ="macro "> println</ span > < span class ="macro "> !</ span > (< span class ="string_literal "> "Hello, {}!"</ span > , < span class ="numeric_literal "> 92</ span > );
5352
54- < span class ="keyword "> let</ span > < span class ="keyword "> mut</ span > < span class ="variable mutable "> vec</ span > = Vec::new();
53+ < span class ="keyword "> let</ span > < span class ="keyword "> mut</ span > < span class ="variable declaration mutable "> vec</ span > = Vec::new();
5554 < span class ="keyword control "> if</ span > < span class ="keyword "> true</ span > {
56- < span class ="keyword "> let</ span > < span class ="variable "> x</ span > = < span class ="numeric_literal "> 92</ span > ;
55+ < span class ="keyword "> let</ span > < span class ="variable declaration "> x</ span > = < span class ="numeric_literal "> 92</ span > ;
5756 < span class ="variable mutable "> vec</ span > .push(< span class ="struct "> Foo</ span > { < span class ="field "> x</ span > , < span class ="field "> y</ span > : < span class ="numeric_literal "> 1</ span > });
5857 }
5958 < span class ="keyword unsafe "> unsafe</ span > { < span class ="variable mutable "> vec</ span > .set_len(< span class ="numeric_literal "> 0</ span > ); }
6059
61- < span class ="keyword "> let</ span > < span class ="keyword "> mut</ span > < span class ="variable mutable "> x</ span > = < span class ="numeric_literal "> 42</ span > ;
62- < span class ="keyword "> let</ span > < span class ="variable mutable "> y</ span > = &< span class ="keyword "> mut</ span > < span class ="variable mutable "> x</ span > ;
63- < span class ="keyword "> let</ span > < span class ="variable "> z</ span > = &< span class ="variable mutable "> y</ span > ;
60+ < span class ="keyword "> let</ span > < span class ="keyword "> mut</ span > < span class ="variable declaration mutable "> x</ span > = < span class ="numeric_literal "> 42</ span > ;
61+ < span class ="keyword "> let</ span > < span class ="variable declaration mutable "> y</ span > = &< span class ="keyword "> mut</ span > < span class ="variable mutable "> x</ span > ;
62+ < span class ="keyword "> let</ span > < span class ="variable declaration "> z</ span > = &< span class ="variable mutable "> y</ span > ;
6463
6564 < span class ="variable mutable "> y</ span > ;
6665}
6766
68- < span class ="keyword "> enum</ span > < span class ="enum "> E</ span > << span class ="type_param "> X</ span > > {
69- < span class ="enum_variant "> V</ span > (< span class ="type_param "> X</ span > )
67+ < span class ="keyword "> enum</ span > < span class ="enum declaration "> Option</ span > << span class ="type_param declaration "> T</ span > > {
68+ < span class ="enum_variant declaration "> Some</ span > (< span class ="type_param "> T</ span > ),
69+ < span class ="enum_variant declaration "> None</ span > ,
7070}
71+ < span class ="keyword "> use</ span > < span class ="enum "> Option</ span > ::*;
7172
72- < span class ="keyword "> impl</ span > << span class ="type_param "> X</ span > > < span class ="enum "> E</ span > << span class ="type_param "> X</ span > > {
73- < span class ="keyword "> fn</ span > < span class ="function "> new</ span > << span class ="type_param "> T</ span > >() -> < span class ="enum "> E</ span > << span class ="type_param "> T</ span > > {}
73+ < span class ="keyword "> impl</ span > << span class ="type_param declaration "> T</ span > > < span class ="enum "> Option</ span > << span class ="type_param "> T</ span > > {
74+ < span class ="keyword "> fn</ span > < span class ="function declaration "> and</ span > << span class ="type_param declaration "> U</ span > >(< span class ="keyword "> self</ span > , < span class ="variable declaration "> other</ span > : < span class ="enum "> Option</ span > << span class ="type_param "> U</ span > >) -> < span class ="enum "> Option</ span > <(< span class ="type_param "> T</ span > , < span class ="type_param "> U</ span > )> {
75+ < span class ="keyword control "> match</ span > < span class ="variable "> other</ span > {
76+ < span class ="enum_variant "> None</ span > => < span class ="macro "> unimplemented</ span > < span class ="macro "> !</ span > (),
77+ < span class ="variable declaration "> Nope</ span > => < span class ="variable "> Nope</ span > ,
78+ }
79+ }
7480}</ code > </ pre >
0 commit comments