Skip to content

Commit 5b968fd

Browse files
perpetualcacophonyModProg
authored andcommitted
added support for public structs
1 parent 0cda963 commit 5b968fd

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

macro/src/lib.rs

+10-4
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ use proc_macro2::{Literal, Span, TokenStream};
1010
use proc_macro_utils::{TokenParser, TokenStream2Ext};
1111
use quote::{format_ident, ToTokens};
1212
use quote_use::quote_use as quote;
13-
use syn::spanned::Spanned;
13+
use syn::{spanned::Spanned, Visibility};
1414
use syn::{DataStruct, DeriveInput, Field, Fields, Generics, Ident, LitStr, Type};
1515

1616
const ATTRIBUTE_IDENT: &str = "attribute";
@@ -743,7 +743,12 @@ fn parse_comma() -> TokenStream {
743743
}
744744
}
745745

746-
fn partial_attribute(partial: &Ident, fields: &[AttrField], generics: &Generics) -> Result {
746+
fn partial_attribute(
747+
partial: &Ident,
748+
vis: &Visibility,
749+
fields: &[AttrField],
750+
generics: &Generics,
751+
) -> Result {
747752
let Some(first_field) = fields.first() else {
748753
return Ok(quote!(#[derive(Default)] struct #partial #generics {}));
749754
};
@@ -755,7 +760,7 @@ fn partial_attribute(partial: &Ident, fields: &[AttrField], generics: &Generics)
755760
};
756761
Ok(quote! {
757762
#[derive(Default)]
758-
struct #partial #generics #fields
763+
#vis struct #partial #generics #fields
759764
})
760765
}
761766

@@ -771,6 +776,7 @@ pub fn attribute_derive(input: DeriveInput) -> Result {
771776
pub fn from_attr_derive(
772777
DeriveInput {
773778
attrs,
779+
vis,
774780
ident,
775781
generics,
776782
data,
@@ -814,7 +820,7 @@ pub fn from_attr_derive(
814820

815821
let conflicts = conflicts.to_tokens(struct_error)?;
816822

817-
let partial_struct = partial_attribute(partial_ident, &fields, &generics)?;
823+
let partial_struct = partial_attribute(partial_ident, &vis, &fields, &generics)?;
818824

819825
let error_invalid_name = struct_error.unknown_field_error(&fields)?;
820826

0 commit comments

Comments
 (0)