1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
extern crate proc_macro; extern crate syn; mod from; mod into; use from::from_impl; use into::into_impl; use proc_macro::TokenStream; use syn::DeriveInput; #[proc_macro_derive(FromPyObject)] pub fn derive_from_py_object(input: TokenStream) -> TokenStream { let ast = syn::parse_macro_input!(input as DeriveInput); TokenStream::from(from_impl(ast)) } #[proc_macro_derive(IntoPyObject)] pub fn derive_into_py_object(input: TokenStream) -> TokenStream { let ast = syn::parse_macro_input!(input as DeriveInput); TokenStream::from(into_impl(ast)) }