Skip to content

Commit f30253a

Browse files
committed
Parse variant attributes from ast_enum_of_structs
1 parent 72c006c commit f30253a

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

codegen/src/parse.rs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -331,11 +331,12 @@ mod parsing {
331331

332332
// A single variant of an ast_enum_of_structs!
333333
struct EosVariant {
334+
attrs: Vec<Attribute>,
334335
name: Ident,
335336
member: Option<Path>,
336337
}
337338
fn eos_variant(input: ParseStream) -> Result<EosVariant> {
338-
input.call(Attribute::parse_outer)?;
339+
let attrs = input.call(Attribute::parse_outer)?;
339340
let variant: Ident = input.parse()?;
340341
let member = if input.peek(token::Paren) {
341342
let content;
@@ -347,6 +348,7 @@ mod parsing {
347348
};
348349
input.parse::<Token![,]>()?;
349350
Ok(EosVariant {
351+
attrs,
350352
name: variant,
351353
member,
352354
})
@@ -371,10 +373,11 @@ mod parsing {
371373

372374
let enum_item = {
373375
let variants = variants.iter().map(|v| {
374-
let name = v.name.clone();
376+
let attrs = &v.attrs;
377+
let name = &v.name;
375378
match v.member {
376-
Some(ref member) => quote!(#name(#member)),
377-
None => quote!(#name),
379+
Some(ref member) => quote!(#(#attrs)* #name(#member)),
380+
None => quote!(#(#attrs)* #name),
378381
}
379382
});
380383
parse_quote! {

0 commit comments

Comments
 (0)