1个不稳定版本
0.1.0 | 2022年12月20日 |
---|
#34 in #conditional
在 2 个crate中使用
7KB
add-syntax
属性宏,可以预先或附加任意语法。与cfg_attr
一起使用很有用。
此crate提供两个属性宏,分别是prepend
和append
,它们分别将传递给它们的标记添加到应用属性的项目开始或结束位置。这特别适合与cfg_attr
一起使用。
示例
当使用#[may_dangle]
时,条件应用unsafe
#[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) { /* ... */ }
}
如果假设功能dropck_eyepatch
已启用,上面的代码相当于
unsafe impl<#[may_dangle] T> Drop for Foo<T> {
fn drop(&mut self) { /* ... */ }
}
否则,如果功能未启用,则代码相当于
impl<T> Drop for Foo<T> {
fn drop(&mut self) { /* ... */ }
}