Macros 1.1

This commit is contained in:
David Tolnay
2016-08-28 22:19:17 -07:00
parent 7014c105b4
commit d914fdf67b
6 changed files with 148 additions and 37 deletions
+9
View File
@@ -0,0 +1,9 @@
[package]
name = "tmp-test"
version = "0.1.0"
authors = ["David Tolnay <dtolnay@gmail.com>"]
[dependencies]
serde = "0.8"
serde_derive = { path = "../serde_derive" }
serde_json = "0.8"
+32
View File
@@ -0,0 +1,32 @@
#!/bin/bash
set -xeuo pipefail
DIR=$(cd "$(dirname "$0")" && pwd)
export RUSTC=${RUSTC:-$HOME/.local/bin/rustc}
cargo build || true
"$RUSTC" \
"$DIR"/../serde_derive/src/lib.rs \
--crate-name serde_derive \
--crate-type rustc-macro \
-C prefer-dynamic \
-g \
--out-dir "$DIR"/target/debug/deps \
--emit=dep-info,link \
-L dependency="$DIR"/target/debug/deps \
--extern serde_codegen="$DIR"/target/debug/deps/libserde_codegen.rlib
"$RUSTC" \
src/main.rs \
--crate-name tmp_test \
--crate-type bin \
-g \
--out-dir "$DIR"/target/debug \
--emit=dep-info,link \
-L dependency="$DIR"/target/debug/deps \
--extern serde_json=$(echo "$DIR"/target/debug/deps/libserde_json-*.rlib) \
--extern serde=$(echo "$DIR"/target/debug/deps/libserde-*.rlib) \
--extern serde_derive="$DIR"/target/debug/deps/libserde_derive.so
+16
View File
@@ -0,0 +1,16 @@
#![feature(rustc_macro)]
#[macro_use]
extern crate serde_derive;
extern crate serde_json;
#[derive(Serialize)]
enum Macros {
#[serde(rename = "macros 1.1")]
OnePointOne,
}
fn main() {
let s = Macros::OnePointOne;
println!("{}", serde_json::to_string(&s).unwrap());
}