use crate::*;
impl Parse for RequestMethods {
fn parse(input: ParseStream) -> syn::Result<Self> {
Ok(RequestMethods {
methods: Punctuated::parse_separated_nonempty(input)?,
})
}
}
impl Parse for MultiRequestBodyData {
fn parse(input: ParseStream) -> syn::Result<Self> {
let mut variables: Vec<Ident> = Vec::new();
loop {
let variable: Ident = input.parse()?;
variables.push(variable);
if input.is_empty() {
break;
}
input.parse::<Token![,]>()?;
if input.is_empty() {
break;
}
}
Ok(MultiRequestBodyData { variables })
}
}
impl Parse for MultiRequestBodyJsonData {
fn parse(input: ParseStream) -> syn::Result<Self> {
let mut params: Vec<(Ident, Type)> = Vec::new();
loop {
let variable: Ident = input.parse()?;
input.parse::<Token![:]>()?;
let type_name: Type = input.parse()?;
params.push((variable, type_name));
if input.is_empty() {
break;
}
input.parse::<Token![,]>()?;
if input.is_empty() {
break;
}
}
Ok(MultiRequestBodyJsonData { params })
}
}
impl Parse for MultiAttributeData {
fn parse(input: ParseStream) -> syn::Result<Self> {
let mut params: Vec<(Expr, Ident, Type)> = Vec::new();
loop {
let key_name: Expr = input.parse()?;
input.parse::<Token![=>]>()?;
let variable: Ident = input.parse()?;
input.parse::<Token![:]>()?;
let type_name: Type = input.parse()?;
params.push((key_name, variable, type_name));
if input.is_empty() {
break;
}
input.parse::<Token![,]>()?;
if input.is_empty() {
break;
}
}
Ok(MultiAttributeData { params })
}
}
impl Parse for MultiAttributesData {
fn parse(input: ParseStream) -> syn::Result<Self> {
let mut variables: Vec<Ident> = Vec::new();
loop {
let variable: Ident = input.parse()?;
variables.push(variable);
if input.is_empty() {
break;
}
input.parse::<Token![,]>()?;
if input.is_empty() {
break;
}
}
Ok(MultiAttributesData { variables })
}
}
impl Parse for MultiRouteParamData {
fn parse(input: ParseStream) -> syn::Result<Self> {
let mut params: Vec<(Expr, Ident)> = Vec::new();
loop {
let key_name: Expr = input.parse()?;
input.parse::<Token![=>]>()?;
let variable: Ident = input.parse()?;
params.push((key_name, variable));
if input.is_empty() {
break;
}
input.parse::<Token![,]>()?;
if input.is_empty() {
break;
}
}
Ok(MultiRouteParamData { params })
}
}
impl Parse for MultiRouteParamsData {
fn parse(input: ParseStream) -> syn::Result<Self> {
let mut variables: Vec<Ident> = Vec::new();
loop {
let variable: Ident = input.parse()?;
variables.push(variable);
if input.is_empty() {
break;
}
input.parse::<Token![,]>()?;
if input.is_empty() {
break;
}
}
Ok(MultiRouteParamsData { variables })
}
}
impl Parse for MultiQueryData {
fn parse(input: ParseStream) -> syn::Result<Self> {
let mut params: Vec<(Expr, Ident)> = Vec::new();
loop {
let key_name: Expr = input.parse()?;
input.parse::<Token![=>]>()?;
let variable: Ident = input.parse()?;
params.push((key_name, variable));
if input.is_empty() {
break;
}
input.parse::<Token![,]>()?;
if input.is_empty() {
break;
}
}
Ok(MultiQueryData { params })
}
}
impl Parse for MultiQuerysData {
fn parse(input: ParseStream) -> syn::Result<Self> {
let mut variables: Vec<Ident> = Vec::new();
loop {
let variable: Ident = input.parse()?;
variables.push(variable);
if input.is_empty() {
break;
}
input.parse::<Token![,]>()?;
if input.is_empty() {
break;
}
}
Ok(MultiQuerysData { variables })
}
}
impl Parse for MultiHeaderData {
fn parse(input: ParseStream) -> syn::Result<Self> {
let mut params: Vec<(Expr, Ident)> = Vec::new();
loop {
let key_name: Expr = input.parse()?;
input.parse::<Token![=>]>()?;
let variable: Ident = input.parse()?;
params.push((key_name, variable));
if input.is_empty() {
break;
}
input.parse::<Token![,]>()?;
if input.is_empty() {
break;
}
}
Ok(MultiHeaderData { params })
}
}
impl Parse for MultiHeadersData {
fn parse(input: ParseStream) -> syn::Result<Self> {
let mut variables: Vec<Ident> = Vec::new();
loop {
let variable: Ident = input.parse()?;
variables.push(variable);
if input.is_empty() {
break;
}
input.parse::<Token![,]>()?;
if input.is_empty() {
break;
}
}
Ok(MultiHeadersData { variables })
}
}
impl Parse for MultiCookieData {
fn parse(input: ParseStream) -> syn::Result<Self> {
let mut params: Vec<(Expr, Ident)> = Vec::new();
loop {
let key_name: Expr = input.parse()?;
input.parse::<Token![=>]>()?;
let variable: Ident = input.parse()?;
params.push((key_name, variable));
if input.is_empty() {
break;
}
input.parse::<Token![,]>()?;
if input.is_empty() {
break;
}
}
Ok(MultiCookieData { params })
}
}
impl Parse for MultiCookiesData {
fn parse(input: ParseStream) -> syn::Result<Self> {
let mut variables: Vec<Ident> = Vec::new();
loop {
let variable: Ident = input.parse()?;
variables.push(variable);
if input.is_empty() {
break;
}
input.parse::<Token![,]>()?;
if input.is_empty() {
break;
}
}
Ok(MultiCookiesData { variables })
}
}
impl Parse for MultiRequestVersionData {
fn parse(input: ParseStream) -> syn::Result<Self> {
let mut variables: Vec<Ident> = Vec::new();
loop {
let variable: Ident = input.parse()?;
variables.push(variable);
if input.is_empty() {
break;
}
input.parse::<Token![,]>()?;
if input.is_empty() {
break;
}
}
Ok(MultiRequestVersionData { variables })
}
}
impl Parse for MultiRequestPathData {
fn parse(input: ParseStream) -> syn::Result<Self> {
let mut variables: Vec<Ident> = Vec::new();
loop {
let variable: Ident = input.parse()?;
variables.push(variable);
if input.is_empty() {
break;
}
input.parse::<Token![,]>()?;
if input.is_empty() {
break;
}
}
Ok(MultiRequestPathData { variables })
}
}
impl Parse for MultiPanicData {
fn parse(input: ParseStream) -> syn::Result<Self> {
let mut variables: Vec<Ident> = Vec::new();
loop {
let variable: Ident = input.parse()?;
variables.push(variable);
if input.is_empty() {
break;
}
input.parse::<Token![,]>()?;
if input.is_empty() {
break;
}
}
Ok(MultiPanicData { variables })
}
}
impl Parse for MultiRequestErrorData {
fn parse(input: ParseStream) -> syn::Result<Self> {
let mut variables: Vec<Ident> = Vec::new();
loop {
let variable: Ident = input.parse()?;
variables.push(variable);
if input.is_empty() {
break;
}
input.parse::<Token![,]>()?;
if input.is_empty() {
break;
}
}
Ok(MultiRequestErrorData { variables })
}
}