|
|
|
@ -10,11 +10,10 @@
|
|
|
|
|
///
|
|
|
|
|
/// TODO: Improve error messages.
|
|
|
|
|
|
|
|
|
|
use std::collections::HashMap;
|
|
|
|
|
use proc_macro::TokenStream;
|
|
|
|
|
use quote::quote;
|
|
|
|
|
use syn::parse::{Parse, ParseStream, Parser, Result};
|
|
|
|
|
use syn::{parse, parse_macro_input, punctuated::Punctuated, Attribute, AttributeArgs, Expr, Ident, ItemStruct, Local, Lit, LitStr, NestedMeta, Meta, MetaNameValue, Pat, Stmt, Type, Token, DeriveInput};
|
|
|
|
|
use syn::parse::Parser;
|
|
|
|
|
use syn::{parse_macro_input, AttributeArgs, ItemStruct, Lit, NestedMeta, Meta, MetaNameValue, Type};
|
|
|
|
|
|
|
|
|
|
#[derive(Debug, Hash, Eq, PartialEq)]
|
|
|
|
|
enum LunanodeRequestParam {
|
|
|
|
@ -33,7 +32,7 @@ impl LunanodeRequestParam {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[proc_macro_attribute]
|
|
|
|
|
pub fn lunanode_response(attr: TokenStream, input: TokenStream) -> TokenStream {
|
|
|
|
|
pub fn lunanode_response(_attr: TokenStream, input: TokenStream) -> TokenStream {
|
|
|
|
|
// Get the structs below the macro
|
|
|
|
|
let mut item_struct = parse_macro_input!(input as ItemStruct);
|
|
|
|
|
// clone the name to keep compiler happy :)
|
|
|
|
@ -67,7 +66,7 @@ pub fn lunanode_request(attr: TokenStream, input: TokenStream) -> TokenStream {
|
|
|
|
|
.into_iter()
|
|
|
|
|
.filter_map(|nm| match nm {
|
|
|
|
|
// Only select certain tokens
|
|
|
|
|
NestedMeta::Meta(Meta::NameValue(MetaNameValue { path, eq_token, lit: Lit::Str(lstr) })) => Some(
|
|
|
|
|
NestedMeta::Meta(Meta::NameValue(MetaNameValue { path, eq_token: _, lit: Lit::Str(lstr) })) => Some(
|
|
|
|
|
// Convert the sigment of the path to a string
|
|
|
|
|
(path.segments
|
|
|
|
|
.into_iter()
|
|
|
|
|