1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
extern crate proc_macro;
use proc_macro::TokenStream;
extern crate syn;
#[macro_use]
extern crate quote;
use syn::{parse_macro_input, DeriveInput};

#[proc_macro_derive(Sdb)]
pub fn sdb(input: TokenStream) -> TokenStream {
  let ast = parse_macro_input!(input as DeriveInput);
  let name = &ast.ident;

  let expanded = quote! {
    sdb::repr!(#name);
  };
  TokenStream::from(expanded)
}

/*
fn sdb_repr(ast: &syn::MacroInput) -> quote::Tokens {
  quote! {
  }
}
*/