You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/procedural-macros.md
+4-16Lines changed: 4 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -232,25 +232,15 @@ r[macro.proc.attribute]
232
232
## Attribute macros
233
233
234
234
r[macro.proc.attribute.intro]
235
-
*Attribute macros* define new [outer attributes][attributes] which can be
236
-
attached to [items], including items in [`extern` blocks], inherent and trait
237
-
[implementations], and [trait definitions].
235
+
*Attribute macros* define new [outer attributes][attributes] which can be attached to [items], including items in [`extern` blocks], inherent and trait [implementations], and [trait definitions].
238
236
239
237
r[macro.proc.attribute.def]
240
-
Attribute macros are defined by a [public] [function] with the
241
-
`proc_macro_attribute` [attribute] that has a signature of `(TokenStream,
242
-
TokenStream) -> TokenStream`. The first [`TokenStream`] is the delimited token
243
-
tree following the attribute's name, not including the outer delimiters. If
244
-
the attribute is written as a bare attribute name, the attribute
245
-
[`TokenStream`] is empty. The second [`TokenStream`] is the rest of the [item]
246
-
including other [attributes] on the [item]. The returned [`TokenStream`]
247
-
replaces the [item] with an arbitrary number of [items].
238
+
Attribute macros are defined by a [public] [function] with the `proc_macro_attribute` [attribute] that has a signature of `(TokenStream, TokenStream) -> TokenStream`. The first [`TokenStream`] is the delimited token tree following the attribute's name, not including the outer delimiters. If the attribute is written as a bare attribute name, the attribute [`TokenStream`] is empty. The second [`TokenStream`] is the rest of the [item] including other [attributes] on the [item]. The returned [`TokenStream`] replaces the [item] with an arbitrary number of [items].
248
239
249
240
r[macro.proc.attribute.namespace]
250
241
The `proc_macro_attribute` attribute defines the attribute in the [macro namespace] in the root of the crate.
251
242
252
-
For example, this attribute macro takes the input stream and returns it as is,
253
-
effectively being the no-op of attributes.
243
+
For example, this attribute macro takes the input stream and returns it as is, effectively being the no-op of attributes.
This following example shows the stringified [`TokenStream`s] that the attribute
268
-
macros see. The output will show in the output of the compiler. The output is
269
-
shown in the comments after the function prefixed with "out:".
257
+
This following example shows the stringified [`TokenStream`s] that the attribute macros see. The output will show in the output of the compiler. The output is shown in the comments after the function prefixed with "out:".
0 commit comments