INNER CODE UNIT · Rust
service
google/tarpc · plugins/src/lib.rs:414
pub fn service(attr: TokenStream, input: TokenStream) -> TokenStream {
let derive_meta = parse_macro_input!(attr as DeriveMeta);
let unit_type: &Type = &parse_quote!(());
let Service {
ref attrs,
ref vis,
ref ident,
ref rpcs,
} = parse_macro_input!(input as Service);
let camel_case_fn_names: &Vec<_> = &rpcs
.iter()
.map(|rpc| snake_to_camel(&rpc.ident.unraw().to_string()))
.collect();
let args: &[&[PatType]] = &rpcs.iter().map(|rpc| &*rpc.args).collect::<Vec<_>>();
let derives = match derive_meta.derive.as_ref() {
Some(Derive::Explicit(paths)) => {