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
@@ -244,25 +244,15 @@ r[macro.proc.attribute]
244
244
## Attribute macros
245
245
246
246
r[macro.proc.attribute.intro]
247
-
*Attribute macros* define new [outer attributes][attributes] which can be
248
-
attached to [items], including items in [`extern` blocks], inherent and trait
249
-
[implementations], and [trait definitions].
247
+
*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].
250
248
251
249
r[macro.proc.attribute.def]
252
-
Attribute macros are defined by a [public] [function] with the
253
-
`proc_macro_attribute` [attribute] that has a signature of `(TokenStream,
254
-
TokenStream) -> TokenStream`. The first [`TokenStream`] is the delimited token
255
-
tree following the attribute's name, not including the outer delimiters. If
256
-
the attribute is written as a bare attribute name, the attribute
257
-
[`TokenStream`] is empty. The second [`TokenStream`] is the rest of the [item]
258
-
including other [attributes] on the [item]. The returned [`TokenStream`]
259
-
replaces the [item] with an arbitrary number of [items].
250
+
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].
260
251
261
252
r[macro.proc.attribute.namespace]
262
253
The `proc_macro_attribute` attribute defines the attribute in the [macro namespace] in the root of the crate.
263
254
264
-
For example, this attribute macro takes the input stream and returns it as is,
265
-
effectively being the no-op of attributes.
255
+
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
280
-
macros see. The output will show in the output of the compiler. The output is
281
-
shown in the comments after the function prefixed with "out:".
269
+
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