1
+
2
+ < style >
3
+ body { margin : 0 ; }
4
+ pre { color : # DCDCCC ; background : # 3F3F3F ; font-size : 22px ; padding : 0.4em ; }
5
+
6
+ .lifetime { color : # DFAF8F ; font-style : italic; }
7
+ .comment { color : # 7F9F7F ; }
8
+ .struct , .enum { color : # 7CB8BB ; }
9
+ .enum_variant { color : # BDE0F3 ; }
10
+ .string_literal { color : # CC9393 ; }
11
+ .field { color : # 94BFF3 ; }
12
+ .function { color : # 93E0E3 ; }
13
+ .parameter { color : # 94BFF3 ; }
14
+ .text { color : # DCDCCC ; }
15
+ .type { color : # 7CB8BB ; }
16
+ .builtin_type { color : # 8CD0D3 ; }
17
+ .type_param { color : # DFAF8F ; }
18
+ .attribute { color : # 94BFF3 ; }
19
+ .numeric_literal { color : # BFEBBF ; }
20
+ .macro { color : # 94BFF3 ; }
21
+ .module { color : # AFD8AF ; }
22
+ .variable { color : # DCDCCC ; }
23
+ .mutable { text-decoration : underline; }
24
+
25
+ .keyword { color : # F0DFAF ; font-weight : bold; }
26
+ .keyword .unsafe { color : # BC8383 ; font-weight : bold; }
27
+ .control { font-style : italic; }
28
+ </ style >
29
+ < pre > < code > < span class ="macro "> macro_rules!</ span > println {
30
+ ($($arg:tt)*) => ({
31
+ $< span class ="keyword "> crate</ span > ::io::_print($< span class ="keyword "> crate</ span > ::format_args_nl!($($arg)*));
32
+ })
33
+ }
34
+ #[rustc_builtin_macro]
35
+ < span class ="macro "> macro_rules!</ span > format_args_nl {
36
+ ($fmt:expr) => {{ < span class ="comment "> /* compiler built-in */</ span > }};
37
+ ($fmt:expr, $($args:tt)*) => {{ < span class ="comment "> /* compiler built-in */</ span > }};
38
+ }
39
+
40
+ < span class ="keyword "> fn</ span > < span class ="function declaration "> main</ span > () {
41
+ < span class ="comment "> // from https://doc.rust-lang.org/std/fmt/index.html</ span >
42
+ < span class ="macro "> println!</ span > (< span class ="string_literal "> "Hello"</ span > ); < span class ="comment "> // => "Hello"</ span >
43
+ < span class ="macro "> println!</ span > (< span class ="string_literal "> "Hello, </ span > < span class ="attribute "> {</ span > < span class ="attribute "> }</ span > < span class ="string_literal "> !"</ span > , < span class ="string_literal "> "world"</ span > ); < span class ="comment "> // => "Hello, world!"</ span >
44
+ < span class ="macro "> println!</ span > (< span class ="string_literal "> "The number is </ span > < span class ="attribute "> {</ span > < span class ="attribute "> }</ span > < span class ="string_literal "> "</ span > , < span class ="numeric_literal "> 1</ span > ); < span class ="comment "> // => "The number is 1"</ span >
45
+ < span class ="macro "> println!</ span > (< span class ="string_literal "> "</ span > < span class ="attribute "> {</ span > < span class ="attribute "> :</ span > < span class ="attribute "> ?</ span > < span class ="attribute "> }</ span > < span class ="string_literal "> "</ span > , (< span class ="numeric_literal "> 3</ span > , < span class ="numeric_literal "> 4</ span > )); < span class ="comment "> // => "(3, 4)"</ span >
46
+ < span class ="macro "> println!</ span > (< span class ="string_literal "> "</ span > < span class ="attribute "> {</ span > < span class ="variable "> value</ span > < span class ="attribute "> }</ span > < span class ="string_literal "> "</ span > , value=< span class ="numeric_literal "> 4</ span > ); < span class ="comment "> // => "4"</ span >
47
+ < span class ="macro "> println!</ span > (< span class ="string_literal "> "</ span > < span class ="attribute "> {</ span > < span class ="attribute "> }</ span > < span class ="string_literal "> </ span > < span class ="attribute "> {</ span > < span class ="attribute "> }</ span > < span class ="string_literal "> "</ span > , < span class ="numeric_literal "> 1</ span > , < span class ="numeric_literal "> 2</ span > ); < span class ="comment "> // => "1 2"</ span >
48
+ < span class ="macro "> println!</ span > (< span class ="string_literal "> "</ span > < span class ="attribute "> {</ span > < span class ="attribute "> :</ span > < span class ="numeric_literal "> 0</ span > < span class ="numeric_literal "> 4</ span > < span class ="attribute "> }</ span > < span class ="string_literal "> "</ span > , < span class ="numeric_literal "> 42</ span > ); < span class ="comment "> // => "0042" with leading zerosV</ span >
49
+ < span class ="macro "> println!</ span > (< span class ="string_literal "> "</ span > < span class ="attribute "> {</ span > < span class ="numeric_literal "> 1</ span > < span class ="attribute "> }</ span > < span class ="string_literal "> </ span > < span class ="attribute "> {</ span > < span class ="attribute "> }</ span > < span class ="string_literal "> </ span > < span class ="attribute "> {</ span > < span class ="numeric_literal "> 0</ span > < span class ="attribute "> }</ span > < span class ="string_literal "> </ span > < span class ="attribute "> {</ span > < span class ="attribute "> }</ span > < span class ="string_literal "> "</ span > , < span class ="numeric_literal "> 1</ span > , < span class ="numeric_literal "> 2</ span > ); < span class ="comment "> // => "2 1 1 2"</ span >
50
+ < span class ="macro "> println!</ span > (< span class ="string_literal "> "</ span > < span class ="attribute "> {</ span > < span class ="variable "> argument</ span > < span class ="attribute "> }</ span > < span class ="string_literal "> "</ span > , argument = < span class ="string_literal "> "test"</ span > ); < span class ="comment "> // => "test"</ span >
51
+ < span class ="macro "> println!</ span > (< span class ="string_literal "> "</ span > < span class ="attribute "> {</ span > < span class ="variable "> name</ span > < span class ="attribute "> }</ span > < span class ="string_literal "> </ span > < span class ="attribute "> {</ span > < span class ="attribute "> }</ span > < span class ="string_literal "> "</ span > , < span class ="numeric_literal "> 1</ span > , name = < span class ="numeric_literal "> 2</ span > ); < span class ="comment "> // => "2 1"</ span >
52
+ < span class ="macro "> println!</ span > (< span class ="string_literal "> "</ span > < span class ="attribute "> {</ span > < span class ="variable "> a</ span > < span class ="attribute "> }</ span > < span class ="string_literal "> </ span > < span class ="attribute "> {</ span > < span class ="variable "> c</ span > < span class ="attribute "> }</ span > < span class ="string_literal "> </ span > < span class ="attribute "> {</ span > < span class ="variable "> b</ span > < span class ="attribute "> }</ span > < span class ="string_literal "> "</ span > , a=< span class ="string_literal "> "a"</ span > , b=< span class ="char_literal "> 'b'</ span > , c=< span class ="numeric_literal "> 3</ span > ); < span class ="comment "> // => "a 3 b"</ span >
53
+ < span class ="macro "> println!</ span > (< span class ="string_literal "> "Hello </ span > < span class ="attribute "> {</ span > < span class ="attribute "> :</ span > < span class ="numeric_literal "> 5</ span > < span class ="attribute "> }</ span > < span class ="string_literal "> !"</ span > , < span class ="string_literal "> "x"</ span > );
54
+ < span class ="macro "> println!</ span > (< span class ="string_literal "> "Hello </ span > < span class ="attribute "> {</ span > < span class ="attribute "> :</ span > < span class ="numeric_literal "> 1</ span > < span class ="attribute "> $</ span > < span class ="attribute "> }</ span > < span class ="string_literal "> !"</ span > , < span class ="string_literal "> "x"</ span > , < span class ="numeric_literal "> 5</ span > );
55
+ < span class ="macro "> println!</ span > (< span class ="string_literal "> "Hello </ span > < span class ="attribute "> {</ span > < span class ="numeric_literal "> 1</ span > < span class ="attribute "> :</ span > < span class ="numeric_literal "> 0</ span > < span class ="attribute "> $</ span > < span class ="attribute "> }</ span > < span class ="string_literal "> !"</ span > , < span class ="numeric_literal "> 5</ span > , < span class ="string_literal "> "x"</ span > );
56
+ < span class ="macro "> println!</ span > (< span class ="string_literal "> "Hello </ span > < span class ="attribute "> {</ span > < span class ="attribute "> :</ span > < span class ="variable "> width</ span > < span class ="attribute "> $</ span > < span class ="attribute "> }</ span > < span class ="string_literal "> !"</ span > , < span class ="string_literal "> "x"</ span > , width = < span class ="numeric_literal "> 5</ span > );
57
+ < span class ="macro "> println!</ span > (< span class ="string_literal "> "Hello </ span > < span class ="attribute "> {</ span > < span class ="attribute "> :</ span > < span class ="attribute "> <</ span > < span class ="numeric_literal "> 5</ span > < span class ="attribute "> }</ span > < span class ="string_literal "> !"</ span > , < span class ="string_literal "> "x"</ span > );
58
+ < span class ="macro "> println!</ span > (< span class ="string_literal "> "Hello </ span > < span class ="attribute "> {</ span > < span class ="attribute "> :</ span > < span class ="attribute "> -</ span > < span class ="attribute "> <</ span > < span class ="numeric_literal "> 5</ span > < span class ="attribute "> }</ span > < span class ="string_literal "> !"</ span > , < span class ="string_literal "> "x"</ span > );
59
+ < span class ="macro "> println!</ span > (< span class ="string_literal "> "Hello </ span > < span class ="attribute "> {</ span > < span class ="attribute "> :</ span > < span class ="attribute "> ^</ span > < span class ="numeric_literal "> 5</ span > < span class ="attribute "> }</ span > < span class ="string_literal "> !"</ span > , < span class ="string_literal "> "x"</ span > );
60
+ < span class ="macro "> println!</ span > (< span class ="string_literal "> "Hello </ span > < span class ="attribute "> {</ span > < span class ="attribute "> :</ span > < span class ="attribute "> ></ span > < span class ="numeric_literal "> 5</ span > < span class ="attribute "> }</ span > < span class ="string_literal "> !"</ span > , < span class ="string_literal "> "x"</ span > );
61
+ < span class ="macro "> println!</ span > (< span class ="string_literal "> "Hello </ span > < span class ="attribute "> {</ span > < span class ="attribute "> :</ span > < span class ="attribute "> +</ span > < span class ="attribute "> }</ span > < span class ="string_literal "> !"</ span > , < span class ="numeric_literal "> 5</ span > );
62
+ < span class ="macro "> println!</ span > (< span class ="string_literal "> "</ span > < span class ="attribute "> {</ span > < span class ="attribute "> :</ span > < span class ="attribute "> #</ span > < span class ="variable "> x</ span > < span class ="string_literal "> }!"</ span > , < span class ="numeric_literal "> 27</ span > );
63
+ < span class ="macro "> println!</ span > (< span class ="string_literal "> "Hello </ span > < span class ="attribute "> {</ span > < span class ="attribute "> :</ span > < span class ="numeric_literal "> 0</ span > < span class ="numeric_literal "> 5</ span > < span class ="attribute "> }</ span > < span class ="string_literal "> !"</ span > , < span class ="numeric_literal "> 5</ span > );
64
+ < span class ="macro "> println!</ span > (< span class ="string_literal "> "Hello </ span > < span class ="attribute "> {</ span > < span class ="attribute "> :</ span > < span class ="numeric_literal "> 0</ span > < span class ="numeric_literal "> 5</ span > < span class ="attribute "> }</ span > < span class ="string_literal "> !"</ span > , -< span class ="numeric_literal "> 5</ span > );
65
+ < span class ="macro "> println!</ span > (< span class ="string_literal "> "</ span > < span class ="attribute "> {</ span > < span class ="attribute "> :</ span > < span class ="attribute "> #</ span > < span class ="numeric_literal "> 0</ span > < span class ="numeric_literal "> 10</ span > < span class ="variable "> x</ span > < span class ="attribute "> }</ span > < span class ="string_literal "> !"</ span > , < span class ="numeric_literal "> 27</ span > );
66
+ < span class ="macro "> println!</ span > (< span class ="string_literal "> "Hello </ span > < span class ="attribute "> {</ span > < span class ="numeric_literal "> 0</ span > < span class ="attribute "> }</ span > < span class ="string_literal "> is </ span > < span class ="attribute "> {</ span > < span class ="numeric_literal "> 1</ span > < span class ="attribute "> :</ span > < span class ="attribute "> .</ span > < span class ="numeric_literal "> 5</ span > < span class ="attribute "> }</ span > < span class ="string_literal "> "</ span > , < span class ="string_literal "> "x"</ span > , < span class ="numeric_literal "> 0.01</ span > );
67
+ < span class ="macro "> println!</ span > (< span class ="string_literal "> "Hello </ span > < span class ="attribute "> {</ span > < span class ="numeric_literal "> 1</ span > < span class ="attribute "> }</ span > < span class ="string_literal "> is </ span > < span class ="attribute "> {</ span > < span class ="numeric_literal "> 2</ span > < span class ="attribute "> :</ span > < span class ="attribute "> .</ span > < span class ="numeric_literal "> 0</ span > < span class ="attribute "> $</ span > < span class ="attribute "> }</ span > < span class ="string_literal "> "</ span > , < span class ="numeric_literal "> 5</ span > , < span class ="string_literal "> "x"</ span > , < span class ="numeric_literal "> 0.01</ span > );
68
+ < span class ="macro "> println!</ span > (< span class ="string_literal "> "Hello </ span > < span class ="attribute "> {</ span > < span class ="numeric_literal "> 0</ span > < span class ="attribute "> }</ span > < span class ="string_literal "> is </ span > < span class ="attribute "> {</ span > < span class ="numeric_literal "> 2</ span > < span class ="attribute "> :</ span > < span class ="attribute "> .</ span > < span class ="numeric_literal "> 1</ span > < span class ="attribute "> $</ span > < span class ="attribute "> }</ span > < span class ="string_literal "> "</ span > , < span class ="string_literal "> "x"</ span > , < span class ="numeric_literal "> 5</ span > , < span class ="numeric_literal "> 0.01</ span > );
69
+ < span class ="macro "> println!</ span > (< span class ="string_literal "> "Hello </ span > < span class ="attribute "> {</ span > < span class ="attribute "> }</ span > < span class ="string_literal "> is </ span > < span class ="attribute "> {</ span > < span class ="attribute "> :</ span > < span class ="attribute "> .</ span > < span class ="attribute "> *</ span > < span class ="attribute "> }</ span > < span class ="string_literal "> "</ span > , < span class ="string_literal "> "x"</ span > , < span class ="numeric_literal "> 5</ span > , < span class ="numeric_literal "> 0.01</ span > );
70
+ < span class ="macro "> println!</ span > (< span class ="string_literal "> "Hello </ span > < span class ="attribute "> {</ span > < span class ="attribute "> }</ span > < span class ="string_literal "> is </ span > < span class ="attribute "> {</ span > < span class ="numeric_literal "> 2</ span > < span class ="attribute "> :</ span > < span class ="attribute "> .</ span > < span class ="attribute "> *</ span > < span class ="attribute "> }</ span > < span class ="string_literal "> "</ span > , < span class ="string_literal "> "x"</ span > , < span class ="numeric_literal "> 5</ span > , < span class ="numeric_literal "> 0.01</ span > );
71
+ < span class ="macro "> println!</ span > (< span class ="string_literal "> "Hello </ span > < span class ="attribute "> {</ span > < span class ="attribute "> }</ span > < span class ="string_literal "> is </ span > < span class ="attribute "> {</ span > < span class ="variable "> number</ span > < span class ="attribute "> :</ span > < span class ="attribute "> .</ span > < span class ="variable "> prec</ span > < span class ="attribute "> $</ span > < span class ="attribute "> }</ span > < span class ="string_literal "> "</ span > , < span class ="string_literal "> "x"</ span > , prec = < span class ="numeric_literal "> 5</ span > , number = < span class ="numeric_literal "> 0.01</ span > );
72
+ < span class ="macro "> println!</ span > (< span class ="string_literal "> "</ span > < span class ="attribute "> {</ span > < span class ="attribute "> }</ span > < span class ="string_literal "> , `</ span > < span class ="attribute "> {</ span > < span class ="variable "> name</ span > < span class ="attribute "> :</ span > < span class ="attribute "> .</ span > < span class ="attribute "> *</ span > < span class ="attribute "> }</ span > < span class ="string_literal "> ` has 3 fractional digits"</ span > , < span class ="string_literal "> "Hello"</ span > , < span class ="numeric_literal "> 3</ span > , name=< span class ="numeric_literal "> 1234.56</ span > );
73
+ < span class ="macro "> println!</ span > (< span class ="string_literal "> "</ span > < span class ="attribute "> {</ span > < span class ="attribute "> }</ span > < span class ="string_literal "> , `</ span > < span class ="attribute "> {</ span > < span class ="variable "> name</ span > < span class ="attribute "> :</ span > < span class ="attribute "> .</ span > < span class ="attribute "> *</ span > < span class ="attribute "> }</ span > < span class ="string_literal "> ` has 3 characters"</ span > , < span class ="string_literal "> "Hello"</ span > , < span class ="numeric_literal "> 3</ span > , name=< span class ="string_literal "> "1234.56"</ span > );
74
+ < span class ="macro "> println!</ span > (< span class ="string_literal "> "</ span > < span class ="attribute "> {</ span > < span class ="attribute "> }</ span > < span class ="string_literal "> , `</ span > < span class ="attribute "> {</ span > < span class ="variable "> name</ span > < span class ="attribute "> :</ span > < span class ="attribute "> ></ span > < span class ="numeric_literal "> 8</ span > < span class ="attribute "> .</ span > < span class ="attribute "> *</ span > < span class ="attribute "> }</ span > < span class ="string_literal "> ` has 3 right-aligned characters"</ span > , < span class ="string_literal "> "Hello"</ span > , < span class ="numeric_literal "> 3</ span > , name=< span class ="string_literal "> "1234.56"</ span > );
75
+ < span class ="macro "> println!</ span > (< span class ="string_literal "> "Hello {{}}"</ span > );
76
+ < span class ="macro "> println!</ span > (< span class ="string_literal "> "{{ Hello"</ span > );
77
+ }</ code > </ pre >
0 commit comments