use crate::*;
impl Parse for ResponseHeaderData {
fn parse(input: ParseStream) -> syn::Result<Self> {
let key: Expr = input.parse()?;
let operation: HeaderOperation = if input.peek(Token![=>]) {
input.parse::<Token![=>]>()?;
HeaderOperation::Set
} else if input.peek(Token![,]) {
input.parse::<Token![,]>()?;
HeaderOperation::Add
} else {
return Err(syn::Error::new(
input.span(),
"Expected either ',' for add operation or '=>' for set operation",
));
};
let value: Expr = input.parse()?;
Ok(ResponseHeaderData {
key,
value,
operation,
})
}
}
impl Parse for ResponseBodyData {
fn parse(input: ParseStream) -> syn::Result<Self> {
let body: Expr = input.parse()?;
Ok(ResponseBodyData { body })
}
}