blob: 9a9e0eb3ff7589af0f7db06ca1455b04ff595b86 [file] [log] [blame]
extern crate proc_macro;
use proc_macro::*;
#[proc_macro_attribute]
pub fn proc_macro_attribute_that_generates_repr_packed(
_attr: TokenStream,
item: TokenStream,
) -> TokenStream {
let repr = vec![TokenTree::Ident(Ident::new("packed", Span::call_site()))].into_iter();
let attr = vec![
TokenTree::Ident(Ident::new("repr", Span::call_site())),
TokenTree::Group(Group::new(Delimiter::Parenthesis, repr.collect())),
]
.into_iter();
vec![
TokenTree::Punct(Punct::new('#', Spacing::Alone)),
TokenTree::Group(Group::new(Delimiter::Bracket, attr.collect())),
]
.into_iter()
.chain(item)
.collect()
}