use std::collections::HashSet;
use syn::parse::{Parse, ParseStream, Result};
use syn::{punctuated::Punctuated, Ident, Token};
pub struct Args {
idents: HashSet<Ident>,
}
impl Args {
pub fn has_cache(&self) -> bool {
self.idents.iter().any(|i| *i == "cache")
}
pub fn has_params(&self) -> bool {
self.idents.iter().any(|i| *i == "params")
}
}
impl Parse for Args {
fn parse(args: ParseStream) -> Result<Self> {
let vars = Punctuated::<Ident, Token![,]>::parse_terminated(args)?;
Ok(Args {
idents: vars.into_iter().collect(),
})
}
}