proto 0.1.2

`proto` allows you to define Protocol Buffers using Rust code to reuse Rust's type system and ecosystem.
Documentation
use crate::{keyword, rpc::Rpc};
use syn::{
  braced,
  parse::{Parse, ParseBuffer, ParseStream},
  Ident, Result,
};

pub struct Service {
  pub name: Ident,
  pub rpcs: Vec<Rpc>,
}

impl Parse for Service {
  fn parse(input: ParseStream) -> Result<Self> {
    input.parse::<keyword::service>()?;

    let name = input.parse::<Ident>()?;

    let content: ParseBuffer;
    braced!(content in input);

    let mut rpcs = Vec::new();

    while !content.is_empty() {
      let rpc = content.parse::<Rpc>()?;
      rpcs.push(rpc);
    }

    Ok(Self { name, rpcs })
  }
}