1 unstable release
0.1.0 | Dec 20, 2022 |
---|
#12 in #attribute
Used in 2 crates
7KB
add-syntax
Attribute macros that prepend or append arbitrary syntax. Useful with
cfg_attr
.
This crate provides two attribute macros, prepend
and append
, that
add the tokens passed to them to the start or end of the item to which the
attribute is applied, respectively. This is particularly useful with
cfg_attr
.
Example
Conditionally applying unsafe
when #[may_dangle]
is used:
#[cfg_attr(feature = "dropck_eyepatch", add_syntax::prepend(unsafe))]
impl<#[cfg_attr(feature = "dropck_eyepatch", may_dangle)] T> Drop
for Foo<T>
{
fn drop(&mut self) { /* ... */ }
}
If the hypothetical feature dropck_eyepatch
is enabled, the code above
is equivalent to:
unsafe impl<#[may_dangle] T> Drop for Foo<T> {
fn drop(&mut self) { /* ... */ }
}
Otherwise, if the feature is not enabled, the code is equivalent to:
impl<T> Drop for Foo<T> {
fn drop(&mut self) { /* ... */ }
}