Add docs and remove unused code/imports.
This commit is contained in:
parent
55d6b72a77
commit
b1be0f411f
@ -1,3 +1,6 @@
|
|||||||
|
//! Crate `ruma-api-macros` provides a procedural macro for easily generating `ruma-api` endpoints.
|
||||||
|
|
||||||
|
#![deny(missing_debug_implementations)]
|
||||||
#![feature(proc_macro)]
|
#![feature(proc_macro)]
|
||||||
|
|
||||||
extern crate proc_macro;
|
extern crate proc_macro;
|
||||||
@ -9,12 +12,13 @@ extern crate syn;
|
|||||||
use proc_macro::TokenStream;
|
use proc_macro::TokenStream;
|
||||||
|
|
||||||
use quote::{ToTokens, Tokens};
|
use quote::{ToTokens, Tokens};
|
||||||
use syn::{Expr, Field, Ident, Item};
|
use syn::{Expr, Field, Ident};
|
||||||
|
|
||||||
use parse::{Entry, parse_entries};
|
use parse::{Entry, parse_entries};
|
||||||
|
|
||||||
mod parse;
|
mod parse;
|
||||||
|
|
||||||
|
/// Generates a `ruma-api` endpoint.
|
||||||
#[proc_macro]
|
#[proc_macro]
|
||||||
pub fn ruma_api(input: TokenStream) -> TokenStream {
|
pub fn ruma_api(input: TokenStream) -> TokenStream {
|
||||||
let entries = parse_entries(&input.to_string()).expect("ruma_api! failed to parse input");
|
let entries = parse_entries(&input.to_string()).expect("ruma_api! failed to parse input");
|
||||||
|
16
src/parse.rs
16
src/parse.rs
@ -1,16 +1,13 @@
|
|||||||
|
//! Implementation details of parsing proc macro input.
|
||||||
|
|
||||||
use syn::{
|
use syn::{
|
||||||
Attribute,
|
Attribute,
|
||||||
AttrStyle,
|
AttrStyle,
|
||||||
Expr,
|
Expr,
|
||||||
Field,
|
Field,
|
||||||
Ident,
|
Ident,
|
||||||
Item,
|
|
||||||
Lit,
|
|
||||||
MetaItem,
|
MetaItem,
|
||||||
NestedMetaItem,
|
NestedMetaItem,
|
||||||
StrStyle,
|
|
||||||
Token,
|
|
||||||
TokenTree,
|
|
||||||
Visibility,
|
Visibility,
|
||||||
};
|
};
|
||||||
use syn::parse::{expr, ident, lit, ty};
|
use syn::parse::{expr, ident, lit, ty};
|
||||||
@ -64,16 +61,9 @@ named!(struct_init_field -> (Ident, Expr), do_parse!(
|
|||||||
(ident, expr)
|
(ident, expr)
|
||||||
));
|
));
|
||||||
|
|
||||||
named!(pub struct_like_body -> Vec<Field>, do_parse!(
|
|
||||||
punct!("{") >>
|
|
||||||
fields: terminated_list!(punct!(","), struct_field) >>
|
|
||||||
punct!("}") >>
|
|
||||||
(fields)
|
|
||||||
));
|
|
||||||
|
|
||||||
named!(struct_field -> Field, do_parse!(
|
named!(struct_field -> Field, do_parse!(
|
||||||
attrs: many0!(outer_attr) >>
|
attrs: many0!(outer_attr) >>
|
||||||
vis: visibility >>
|
visibility >>
|
||||||
id: ident >>
|
id: ident >>
|
||||||
punct!(":") >>
|
punct!(":") >>
|
||||||
ty: ty >>
|
ty: ty >>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user