3 #![allow(unused_must_use)]
5 #![allow(unused_imports)]
7 #![feature(rustc_private)]
9 extern crate serialize as rustc_serialize;
12 use std::io::prelude::*;
16 use rustc_serialize::{Encodable, Encoder};
17 use rustc_serialize::json;
18 use rustc_serialize::opaque;
20 #[derive(RustcEncodable)]
25 #[derive(RustcEncodable)]
36 fn encode_json<T: Encodable>(val: &T, wr: &mut Cursor<Vec<u8>>) {
37 write!(wr, "{}", json::as_json(val));
39 fn encode_opaque<T: Encodable>(val: &T, wr: Vec<u8>) {
40 let mut encoder = opaque::Encoder::new(wr);
41 val.encode(&mut encoder);
45 let target = Foo{baz: false,};
46 let proto = WireProtocol::JSON;
48 WireProtocol::JSON => encode_json(&target, &mut Cursor::new(Vec::new())),
49 WireProtocol::Opaque => encode_opaque(&target, Vec::new())