2019-07-27 00:54:25 +03:00
|
|
|
// run-pass
|
|
|
|
|
2018-09-17 11:18:35 +02:00
|
|
|
#![allow(unused_mut)]
|
|
|
|
#![allow(unused_imports)]
|
2015-03-31 13:40:39 -07:00
|
|
|
#![feature(rustc_private)]
|
2014-06-01 14:16:11 +02:00
|
|
|
|
2020-07-04 16:20:24 +01:00
|
|
|
extern crate rustc_macros;
|
2020-06-02 22:46:42 +03:00
|
|
|
extern crate rustc_serialize;
|
2014-06-01 14:16:11 +02:00
|
|
|
|
2020-07-04 16:20:24 +01:00
|
|
|
use rustc_macros::{Decodable, Encodable};
|
2020-06-02 22:46:42 +03:00
|
|
|
use rustc_serialize::json;
|
2020-07-04 16:20:24 +01:00
|
|
|
use rustc_serialize::{Decodable, Encodable};
|
2014-06-01 14:16:11 +02:00
|
|
|
|
2020-07-04 16:20:24 +01:00
|
|
|
#[derive(Encodable, Decodable, PartialEq, Debug)]
|
2014-06-01 14:16:11 +02:00
|
|
|
struct UnitLikeStruct;
|
|
|
|
|
|
|
|
pub fn main() {
|
|
|
|
let obj = UnitLikeStruct;
|
2015-01-26 16:10:22 +01:00
|
|
|
let json_str: String = json::encode(&obj).unwrap();
|
2014-06-01 14:16:11 +02:00
|
|
|
|
2015-02-01 21:53:25 -05:00
|
|
|
let json_object = json::from_str(&json_str);
|
2014-06-01 14:16:11 +02:00
|
|
|
let mut decoder = json::Decoder::new(json_object.unwrap());
|
|
|
|
let mut decoded_obj: UnitLikeStruct = Decodable::decode(&mut decoder).unwrap();
|
|
|
|
|
|
|
|
assert_eq!(obj, decoded_obj);
|
|
|
|
}
|