aboutsummaryrefslogtreecommitdiff
path: root/rossweisse/src/implementations/router/parser/field_initializer.rs
blob: fe51ce1ccffaeb00335dfe43889ea7e3e4e6bef9 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
use syn::parse::{self, Parse};

pub struct FieldInitializer<T: Parse> {
  pub ident: syn::Ident,
  #[allow(unused)]
  eq_token:  syn::Token![=],
  pub expr:  T,
}

impl<T: Parse> Parse for FieldInitializer<T> {
  fn parse(input: parse::ParseStream<'_>) -> syn::Result<Self> {
    let ident = input.parse()?;
    let eq_token = input.parse()?;
    let expr = input.parse()?;

    Ok(Self {
      ident,
      eq_token,
      expr,
    })
  }
}