From 7c34e069594821350966b944012eaae8bfa2fa83 Mon Sep 17 00:00:00 2001 From: Tim Kuehn Date: Tue, 12 Jan 2016 23:09:59 -0800 Subject: [PATCH] Add doc comment functionality --- README.md | 2 +- tarpc/src/lib.rs | 4 ++-- tarpc/src/macros.rs | 29 ++++++++++++++++++++++------- 3 files changed, 25 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 35ea58b..c08bc9e 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ extern crate serde; rpc! { mod hello_service { service { - hello(name: String) -> String; + rpc hello(name: String) -> String; } } } diff --git a/tarpc/src/lib.rs b/tarpc/src/lib.rs index dd6109c..272783f 100644 --- a/tarpc/src/lib.rs +++ b/tarpc/src/lib.rs @@ -11,8 +11,8 @@ //! rpc! { //! mod my_server { //! service { -//! hello(name: String) -> String; -//! add(x: i32, y: i32) -> i32; +//! rpc hello(name: String) -> String; +//! rpc add(x: i32, y: i32) -> i32; //! } //! } //! } diff --git a/tarpc/src/macros.rs b/tarpc/src/macros.rs index 8a4f352..1148d3f 100644 --- a/tarpc/src/macros.rs +++ b/tarpc/src/macros.rs @@ -54,7 +54,10 @@ macro_rules! rpc { mod $server:ident { service { - $( $fn_name:ident( $( $arg:ident : $in_:ty ),* ) -> $out:ty;)* + $( + $(#[$attr:meta])* + rpc $fn_name:ident( $( $arg:ident : $in_:ty ),* ) -> $out:ty; + )* } } ) => { @@ -63,7 +66,12 @@ macro_rules! rpc { items { } - service { $( $fn_name($($arg: $in_),*) -> $out;)* } + service { + $( + $(#[$attr])* + rpc $fn_name($($arg: $in_),*) -> $out; + )* + } } } }; @@ -81,7 +89,12 @@ macro_rules! rpc { items { $($i:item)* } // List any rpc methods: rpc foo(arg1: Arg1, ..., argN: ArgN) -> Out - service { $( $fn_name:ident( $( $arg:ident : $in_:ty ),* ) -> $out:ty;)* } + service { + $( + $(#[$attr:meta])* + rpc $fn_name:ident( $( $arg:ident : $in_:ty ),* ) -> $out:ty; + )* + } } ) => { #[doc="A module containing an rpc service and client stub."] @@ -92,6 +105,7 @@ macro_rules! rpc { #[doc="The provided RPC service."] pub trait Service: Send + Sync { $( + $(#[$attr])* fn $fn_name(&self, $($arg:$in_),*) -> $out; )* } @@ -161,8 +175,8 @@ mod test { } service { - hello(foo: Foo) -> Foo; - add(x: i32, y: i32) -> i32; + rpc hello(foo: Foo) -> Foo; + rpc add(x: i32, y: i32) -> i32; } } } @@ -197,7 +211,7 @@ mod test { rpc! { mod foo { service { - hello() -> String; + rpc hello() -> String; } } } @@ -210,7 +224,8 @@ mod test { } service { - baz(s: String) -> HashMap; + #[doc="Hello bob"] + rpc baz(s: String) -> HashMap; } } }