mirror of
https://github.com/pezkuwichain/serde.git
synced 2026-06-13 09:01:01 +00:00
Macros 1.1
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
#![feature(rustc_macro)]
|
||||
|
||||
extern crate rustc_macro;
|
||||
extern crate serde_codegen;
|
||||
|
||||
use rustc_macro::TokenStream;
|
||||
|
||||
#[rustc_macro_derive(Serialize)]
|
||||
pub fn derive_serialize(input: TokenStream) -> TokenStream {
|
||||
let item = format!("#[derive(Serialize)]\n{}", input);
|
||||
let expanded = serde_codegen::expand_str(&item).unwrap();
|
||||
expanded.parse().unwrap()
|
||||
}
|
||||
|
||||
#[rustc_macro_derive(Deserialize)]
|
||||
pub fn derive_deserialize(input: TokenStream) -> TokenStream {
|
||||
let item = format!("#[derive(Deserialize)]\n{}", input);
|
||||
let expanded = serde_codegen::expand_str(&item).unwrap();
|
||||
expanded.parse().unwrap()
|
||||
}
|
||||
Reference in New Issue
Block a user