impls_index/impls_index/
func.rs1mod private
3{
4
5 #[ macro_export ]
10 macro_rules! fn_name
11 {
12
13 (
14 fn $Name : ident
15 $( $Rest : tt )*
16 )
17 =>
18 {
19 $Name
20 };
21
22 (
23 $First : tt
24 $( $Rest : tt )*
25 )
26 =>
27 {
28 $crate::fn_name!( $( $Rest )* );
29 };
30
31 }
32
33 #[ macro_export ]
38 macro_rules! fn_rename
39 {
40
41 (
42 @Prefix { $( $Prefix : tt )* }
43 @Name { $Name : ident }
44 @Postfix
45 {
46 fn $OldName : ident
47 $( $Postfix : tt )*
48 }
49 )
50 =>
51 {
52 $( $Prefix )*
53 fn $Name
54 $( $Postfix )*
55 };
56
57 (
58 @Prefix { $( $Prefix : tt )* }
59 @Name { $Name : ident }
60 @Postfix
61 {
62 $First : tt
63 $( $Postfix : tt )*
64 }
65 )
66 =>
67 {
68 $crate::fn_rename!
69 {
70 @Prefix { $( $Prefix )* }
71 @Name { $Name }
72 @Postfix { $( $Postfix )* }
73 }
74 };
75
76 (
77 @Name { $Name : ident }
78 @Fn { $( $Fn : tt )* }
79 )
80 =>
81 {
82 $crate::fn_rename!
83 {
84 @Prefix {}
85 @Name { $Name }
86 @Postfix { $( $Fn )* }
87 }
88 };
89
90 }
91
92 #[ macro_export ]
97 macro_rules! fns
98 {
99
100 (
101 @Callback { $Callback : path }
102 @Rest
103 {
104 $( #[ $Meta : meta ] )*
105 $Vis : vis
106 fn $Name : ident
107 $( < $( $ParamName : ident $( : $ParamType : path )? ),* $(,)? > )?
108 ( $( $In : tt )* )
109 $( -> $Out : ty )?
110 $( where $( $WhereParamName : ident $( : $WhereParamType : path )? ),* $(,)? )?
111 $Block : block
112
113 $( $Rest : tt )*
114 }
115 )
116 =>
117 {
118 $Callback!
119 {
120 $( #[ $Meta ] )*
121 $Vis
122 fn $Name
123 $( < $( $ParamName $( : $ParamType )? ),* > )?
124 ( $( $In )* )
125 $( -> $Out )?
126 $( where $( $WhereParamName $( : $WhereParamType )? ),* )?
127 $Block
128 }
129 $crate::fns!
130 {
131 @Callback { $Callback }
132 @Rest
133 {
134 $( $Rest )*
135 }
136 }
137 };
138
139 (
140 @Callback { $Callback : path }
141 @Rest {}
142 )
143 =>
144 {
145 };
146
147 (
148 @Callback { $Callback : path }
149 @Rest { $( $Rest : tt )* }
150 )
151 =>
152 {
153 compile_error!( concat!( "= Cant parse function\n", stringify!( $( $Rest )* ) ) );
154 };
155
156 (
157 @Callback { $Callback : path }
158 @Fns { $( $Fns : tt )* }
159 )
160 =>
161 {
162 $crate::fns!
163 {
164 @Callback { $Callback }
165 @Rest { $( $Fns )* }
167 }
168 };
169
170 }
171
172 #[ macro_export ]
177 macro_rules! fns2
178 {
179
180 (
181 @Callback { $Callback : path }
182 @Rest
183 {
184 $( $Item : item )*
185 }
186 )
187 =>
188 {
189 $(
190 $Callback!
191 {
192 $Item
193 }
194 )*
195 };
196
197 (
198 @Callback { $Callback : path }
199 @Rest {}
200 )
201 =>
202 {
203 };
204
205 (
206 @Callback { $Callback : path }
207 @Rest { $( $Rest : tt )* }
208 )
209 =>
210 {
211 compile_error!( concat!( "= Cant parse function\n", stringify!( $( $Rest )* ) ) );
212 };
213
214 (
215 @Callback { $Callback : path }
216 @Fns { $( $Fns : tt )* }
217 )
218 =>
219 {
220 $crate::fns2!
221 {
222 @Callback { $Callback }
223 @Rest { $( $Fns )* }
224 }
225 };
226
227 }
228
229 pub use fn_rename;
230 pub use fn_name;
231 pub use fns;
232 pub use fns2;
233}
234
235#[ allow( unused_imports ) ]
237pub mod exposed
238{
239 use super::*;
240 #[ doc( inline ) ]
241 pub use prelude::*;
242}
243
244#[ allow( unused_imports ) ]
246pub mod prelude
247{
248 use super::*;
249 #[ doc( inline ) ]
250 #[ allow( unused_imports ) ]
251 pub use private::fn_rename;
252 #[ doc( inline ) ]
253 #[ allow( unused_imports ) ]
254 pub use private::fn_name;
255 #[ doc( inline ) ]
256 #[ allow( unused_imports ) ]
257 pub use private::fns;
258 #[ doc( inline ) ]
259 #[ allow( unused_imports ) ]
260 pub use private::fns2;
261 }