use syn::{
parse::{Parse, ParseStream},
punctuated::Punctuated,
Token,
};
pub struct Implements {
pub types: Punctuated<syn::Type, Token![,]>,
}
impl Parse for Implements {
fn parse(input: ParseStream) -> syn::Result<Self> {
Ok(Self {
types: Punctuated::parse_terminated(input)?,
})
}
}
#[derive(Debug)]
pub struct Selector {
_name: kw::name,
_eq_token: Token![=],
pub value: syn::LitStr,
}
impl Parse for Selector {
fn parse(input: ParseStream) -> syn::Result<Self> {
Ok(Self {
_name: input.parse()?,
_eq_token: input.parse()?,
value: input.parse()?,
})
}
}
mod kw {
syn::custom_keyword!(name);
}