4 #![allow(unused_imports)]
5 #![feature(rustc_private)]
7 extern crate rustc_macros;
8 extern crate rustc_serialize;
10 // Necessary to pull in object code as the rest of the rustc crates are shipped only as rmeta
12 #[allow(unused_extern_crates)]
13 extern crate rustc_driver;
15 use rustc_macros::{Decodable, Encodable};
16 use rustc_serialize::opaque::{MemDecoder, MemEncoder};
17 use rustc_serialize::{Decodable, Encodable, Encoder};
19 #[derive(Encodable, Decodable, PartialEq, Debug)]
20 struct UnitLikeStruct;
23 let obj = UnitLikeStruct;
25 let mut encoder = MemEncoder::new();
26 obj.encode(&mut encoder);
27 let data = encoder.finish();
29 let mut decoder = MemDecoder::new(&data, 0);
30 let obj2 = UnitLikeStruct::decode(&mut decoder);
32 assert_eq!(obj, obj2);