parent
e547a06639
commit
ef5d09e144
@ -15,7 +15,7 @@ You may be looking for:
|
|||||||
## Serde in action
|
## Serde in action
|
||||||
|
|
||||||
```rust
|
```rust
|
||||||
#![feature(rustc_macro)]
|
#![feature(proc_macro)]
|
||||||
|
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate serde_derive;
|
extern crate serde_derive;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#![cfg_attr(feature = "serde_derive", feature(rustc_macro))]
|
#![cfg_attr(feature = "serde_derive", feature(proc_macro))]
|
||||||
|
|
||||||
#[cfg(feature = "serde_derive")]
|
#[cfg(feature = "serde_derive")]
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
|
@ -12,7 +12,7 @@ include = ["Cargo.toml", "src/**/*.rs"]
|
|||||||
|
|
||||||
[lib]
|
[lib]
|
||||||
name = "serde_derive"
|
name = "serde_derive"
|
||||||
rustc-macro = true
|
proc-macro = true
|
||||||
|
|
||||||
[dependencies.serde_codegen]
|
[dependencies.serde_codegen]
|
||||||
version = "=0.8.11"
|
version = "=0.8.11"
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
#![feature(rustc_macro, rustc_macro_lib)]
|
#![feature(proc_macro, proc_macro_lib)]
|
||||||
#![cfg(not(test))]
|
#![cfg(not(test))]
|
||||||
|
|
||||||
extern crate rustc_macro;
|
extern crate proc_macro;
|
||||||
extern crate serde_codegen;
|
extern crate serde_codegen;
|
||||||
|
|
||||||
use rustc_macro::TokenStream;
|
use proc_macro::TokenStream;
|
||||||
|
|
||||||
#[rustc_macro_derive(Serialize)]
|
#[proc_macro_derive(Serialize)]
|
||||||
pub fn derive_serialize(input: TokenStream) -> TokenStream {
|
pub fn derive_serialize(input: TokenStream) -> TokenStream {
|
||||||
let item = format!("#[derive(Serialize)]\n{}", input);
|
let item = format!("#[derive(Serialize)]\n{}", input);
|
||||||
match serde_codegen::expand_single_item(&item) {
|
match serde_codegen::expand_single_item(&item) {
|
||||||
@ -15,7 +15,7 @@ pub fn derive_serialize(input: TokenStream) -> TokenStream {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[rustc_macro_derive(Deserialize)]
|
#[proc_macro_derive(Deserialize)]
|
||||||
pub fn derive_deserialize(input: TokenStream) -> TokenStream {
|
pub fn derive_deserialize(input: TokenStream) -> TokenStream {
|
||||||
let item = format!("#[derive(Deserialize)]\n{}", input);
|
let item = format!("#[derive(Deserialize)]\n{}", input);
|
||||||
match serde_codegen::expand_single_item(&item) {
|
match serde_codegen::expand_single_item(&item) {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#![feature(rustc_macro)]
|
#![feature(proc_macro)]
|
||||||
|
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate serde_derive;
|
extern crate serde_derive;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#![feature(rustc_macro)]
|
#![feature(proc_macro)]
|
||||||
|
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate serde_derive;
|
extern crate serde_derive;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#![feature(rustc_macro)]
|
#![feature(proc_macro)]
|
||||||
|
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate serde_derive;
|
extern crate serde_derive;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#![feature(rustc_macro)]
|
#![feature(proc_macro)]
|
||||||
|
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate serde_derive;
|
extern crate serde_derive;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#![feature(rustc_macro)]
|
#![feature(proc_macro)]
|
||||||
|
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate serde_derive;
|
extern crate serde_derive;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#![feature(rustc_macro)]
|
#![feature(proc_macro)]
|
||||||
|
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate serde_derive;
|
extern crate serde_derive;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#![feature(rustc_macro)]
|
#![feature(proc_macro)]
|
||||||
|
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate serde_derive;
|
extern crate serde_derive;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#![feature(rustc_macro)]
|
#![feature(proc_macro)]
|
||||||
|
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate serde_derive;
|
extern crate serde_derive;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#![feature(rustc_macro)]
|
#![feature(proc_macro)]
|
||||||
|
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate serde_derive;
|
extern crate serde_derive;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#![feature(rustc_macro)]
|
#![feature(proc_macro)]
|
||||||
|
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate serde_derive;
|
extern crate serde_derive;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#![feature(rustc_macro)]
|
#![feature(proc_macro)]
|
||||||
#![deny(identity_op)]
|
#![deny(identity_op)]
|
||||||
|
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#![feature(test, rustc_macro, rustc_attrs)]
|
#![feature(test, proc_macro, rustc_attrs)]
|
||||||
|
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate serde_derive;
|
extern crate serde_derive;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user