From 7ddbace030c23444ba26f0086f0aaf2985810c00 Mon Sep 17 00:00:00 2001 From: unspeaker Date: Sun, 18 May 2025 18:31:40 +0300 Subject: [PATCH] proc: allow implementing #[command] over more complex types --- proc/src/lib.rs | 2 +- proc/src/proc_command.rs | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/proc/src/lib.rs b/proc/src/lib.rs index 132d416..02ba5de 100644 --- a/proc/src/lib.rs +++ b/proc/src/lib.rs @@ -10,7 +10,7 @@ pub(crate) use proc_macro2::{ TokenStream as TokenStream2, Ident, Span, Punct, Group, Delimiter, Spacing::* }; pub(crate) use syn::{ - parse_macro_input, ImplItem, ImplItemFn, LitStr, Type, + parse_macro_input, ImplItem, ImplItemFn, LitStr, Type, TypePath, ItemImpl, ReturnType, Signature, FnArg, Pat, PatType, PatIdent, parse::{Parse, ParseStream, Result}, }; diff --git a/proc/src/proc_command.rs b/proc/src/proc_command.rs index f8e9d2a..123b11b 100644 --- a/proc/src/proc_command.rs +++ b/proc/src/proc_command.rs @@ -4,7 +4,7 @@ use crate::*; pub(crate) struct CommandDef(pub(crate) CommandMeta, pub(crate) CommandImpl); #[derive(Debug, Clone)] -pub(crate) struct CommandMeta(Ident); +pub(crate) struct CommandMeta(TypePath); #[derive(Debug, Clone)] pub(crate) struct CommandImpl(ItemImpl, BTreeMap, CommandArm>); @@ -14,7 +14,7 @@ struct CommandArm(Ident, Vec, #[allow(unused)] ReturnType); impl Parse for CommandMeta { fn parse (input: ParseStream) -> Result { - Ok(Self(input.parse::()?)) + Ok(Self(input.parse()?)) } }