Skip to content

Commit

Permalink
removed inherited meta
Browse files Browse the repository at this point in the history
  • Loading branch information
jewlexx committed Dec 10, 2024
1 parent 27a5075 commit 9d8a461
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 3 deletions.
24 changes: 21 additions & 3 deletions quork-proc/src/strip_enum.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
use proc_macro2::{Ident, TokenStream};
use proc_macro_error2::{abort, abort_call_site};
use quote::{quote, ToTokens};
use syn::{spanned::Spanned, DeriveInput, Meta, Variant, Visibility};
use syn::{spanned::Spanned, DeriveInput, Meta, MetaNameValue, Variant, Visibility};

fn ignore_variant(variant: &Variant) -> bool {
variant.attrs.iter().any(|attr| match attr.meta {
Expand Down Expand Up @@ -96,8 +96,26 @@ pub fn strip_enum(ast: &mut DeriveInput) -> TokenStream {
let meta_list: Vec<syn::Meta> = attrs
.iter()
.filter(|attr| attr.path().is_ident("stripped_meta"))
.map(|meta_attr| match meta_attr.meta {
Meta::List(ref meta_data) => meta_data.parse_args::<syn::Meta>().unwrap(),
.flat_map(|meta_attr| match &meta_attr.meta {
Meta::List(meta_data) => vec![meta_data.parse_args::<syn::Meta>().unwrap()],
// Meta::NameValue(MetaNameValue {
// value:
// syn::Expr::Lit(syn::ExprLit {
// lit: syn::Lit::Str(path),
// ..
// }),
// ..
// }) => {
// if &path.value() == "inherit" {
// attrs
// .iter()
// .filter(|attr| !attr.path().is_ident("stripped_meta"))
// .map(|attr| attr.meta.clone())
// .collect()
// } else {
// abort!(path.span(), "Expected `inherit`");
// }
// }
_ => abort!(
meta_attr.span(),
"Expected #[stripped_meta(...)]. Found other style attribute."
Expand Down
7 changes: 7 additions & 0 deletions quork-proc/tests/strip_enum.rs
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,13 @@ enum EnumExclude {
Test3(DummyStruct),
}

#[derive(Strip, Display)]
#[stripped_meta(derive(EnumIter))]
#[stripped_meta(strum(serialize_all = "kebab-case"))]
enum EnumWithInherit {
Test1(DummyStruct),
}

#[test]
fn excludes_no_hook_variant() {
let variants = enum_to_string::<EnumExcludeStripped>();
Expand Down

0 comments on commit 9d8a461

Please sign in to comment.