4
4
5
5
extern crate proc_macro;
6
6
7
- use proc_macro:: { TokenStream , TokenTree , Group , Delimiter , token_stream } ;
7
+ use proc_macro:: { token_stream , Delimiter , Group , TokenStream , TokenTree } ;
8
8
9
9
fn expect_ident ( it : & mut token_stream:: IntoIter ) -> String {
10
10
if let TokenTree :: Ident ( ident) = it. next ( ) . unwrap ( ) {
@@ -78,13 +78,24 @@ fn get_byte_string(it: &mut token_stream::IntoIter, expected_name: &str) -> Stri
78
78
byte_string[ 2 ..byte_string. len ( ) - 1 ] . to_string ( )
79
79
}
80
80
81
- fn __build_modinfo_string_base ( module : & str , field : & str , content : & str , variable : & str , builtin : bool ) -> String {
81
+ fn __build_modinfo_string_base (
82
+ module : & str ,
83
+ field : & str ,
84
+ content : & str ,
85
+ variable : & str ,
86
+ builtin : bool ,
87
+ ) -> String {
82
88
let string = if builtin {
83
89
// Built-in modules prefix their modinfo strings by `module.`
84
- format ! ( "{module}.{field}={content}" , module=module, field=field, content=content)
90
+ format ! (
91
+ "{module}.{field}={content}" ,
92
+ module = module,
93
+ field = field,
94
+ content = content
95
+ )
85
96
} else {
86
97
// Loadable modules' modinfo strings go as-is
87
- format ! ( "{field}={content}" , field= field, content= content)
98
+ format ! ( "{field}={content}" , field = field, content = content)
88
99
} ;
89
100
90
101
format ! (
@@ -94,23 +105,39 @@ fn __build_modinfo_string_base(module: &str, field: &str, content: &str, variabl
94
105
#[used]
95
106
pub static {variable}: [u8; {length}] = *b\" {string}\\ 0\" ;
96
107
" ,
97
- cfg = if builtin { "#[cfg(not(MODULE))]" } else { "#[cfg(MODULE)]" } ,
108
+ cfg = if builtin {
109
+ "#[cfg(not(MODULE))]"
110
+ } else {
111
+ "#[cfg(MODULE)]"
112
+ } ,
98
113
variable = variable,
99
114
length = string. len( ) + 1 ,
100
115
string = string,
101
116
)
102
117
}
103
118
104
119
fn __build_modinfo_string_variable ( module : & str , field : & str ) -> String {
105
- format ! ( "__{module}_{field}" , module= module, field= field)
120
+ format ! ( "__{module}_{field}" , module = module, field = field)
106
121
}
107
122
108
123
fn build_modinfo_string_only_builtin ( module : & str , field : & str , content : & str ) -> String {
109
- __build_modinfo_string_base ( module, field, content, & __build_modinfo_string_variable ( module, field) , true )
124
+ __build_modinfo_string_base (
125
+ module,
126
+ field,
127
+ content,
128
+ & __build_modinfo_string_variable ( module, field) ,
129
+ true ,
130
+ )
110
131
}
111
132
112
133
fn build_modinfo_string_only_loadable ( module : & str , field : & str , content : & str ) -> String {
113
- __build_modinfo_string_base ( module, field, content, & __build_modinfo_string_variable ( module, field) , false )
134
+ __build_modinfo_string_base (
135
+ module,
136
+ field,
137
+ content,
138
+ & __build_modinfo_string_variable ( module, field) ,
139
+ false ,
140
+ )
114
141
}
115
142
116
143
fn build_modinfo_string ( module : & str , field : & str , content : & str ) -> String {
@@ -119,8 +146,13 @@ fn build_modinfo_string(module: &str, field: &str, content: &str) -> String {
119
146
}
120
147
121
148
fn build_modinfo_string_param ( module : & str , field : & str , param : & str , content : & str ) -> String {
122
- let variable = format ! ( "__{module}_{field}_{param}" , module=module, field=field, param=param) ;
123
- let content = format ! ( "{param}:{content}" , param=param, content=content) ;
149
+ let variable = format ! (
150
+ "__{module}_{field}_{param}" ,
151
+ module = module,
152
+ field = field,
153
+ param = param
154
+ ) ;
155
+ let content = format ! ( "{param}:{content}" , param = param, content = content) ;
124
156
__build_modinfo_string_base ( module, field, & content, & variable, true )
125
157
+ & __build_modinfo_string_base ( module, field, & content, & variable, false )
126
158
}
@@ -202,8 +234,18 @@ pub fn module(ts: TokenStream) -> TokenStream {
202
234
t => panic ! ( "Unrecognized type {}" , t) ,
203
235
} ;
204
236
205
- params_modinfo. push_str ( & build_modinfo_string_param ( & name, "parmtype" , & param_name, & param_kernel_type) ) ;
206
- params_modinfo. push_str ( & build_modinfo_string_param ( & name, "parm" , & param_name, & param_description) ) ;
237
+ params_modinfo. push_str ( & build_modinfo_string_param (
238
+ & name,
239
+ "parmtype" ,
240
+ & param_name,
241
+ & param_kernel_type,
242
+ ) ) ;
243
+ params_modinfo. push_str ( & build_modinfo_string_param (
244
+ & name,
245
+ "parm" ,
246
+ & param_name,
247
+ & param_description,
248
+ ) ) ;
207
249
params_modinfo. push_str (
208
250
& format ! (
209
251
"
@@ -352,4 +394,3 @@ pub fn module(ts: TokenStream) -> TokenStream {
352
394
initcall_section = ".initcall6.init"
353
395
) . parse ( ) . unwrap ( )
354
396
}
355
-
0 commit comments