Crates.io | add-syntax |
lib.rs | add-syntax |
version | 0.1.0 |
source | src |
created_at | 2022-12-20 02:48:49.402387 |
updated_at | 2022-12-20 02:48:49.402387 |
description | Attribute macros that prepend or append arbitrary syntax. Useful with `cfg_attr`. |
homepage | |
repository | https://github.com/taylordotfish/add-syntax |
max_upload_size | |
id | 741909 |
size | 19,813 |
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
.
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) { /* ... */ }
}