use proc_macro2::Ident; use syn::{ parse::{Parse, ParseStream}, LitStr, Token, }; pub(crate) struct StrArg { pub(crate) value: LitStr, _p: std::marker::PhantomData, } impl Parse for StrArg { fn parse(input: ParseStream<'_>) -> syn::Result { let _ = input.parse::()?; let _ = input.parse::()?; let value = input.parse()?; Ok(Self { value, _p: std::marker::PhantomData, }) } } pub(crate) struct IdentArg { pub(crate) value: Ident, _p: std::marker::PhantomData, } impl Parse for IdentArg { fn parse(input: ParseStream) -> syn::Result { let _ = input.parse::()?; let _ = input.parse::()?; let value = input.parse()?; Ok(Self { value, _p: std::marker::PhantomData, }) } }