1 #![allow(unused_must_use)]
3 #![allow(unused_imports)]
5 #![feature(rustc_private)]
7 extern crate serialize;
8 use serialize as rustc_serialize;
11 use std::io::prelude::*;
15 use serialize::{Encodable, Encoder};
17 use serialize::opaque;
19 #[derive(RustcEncodable)]
24 #[derive(RustcEncodable)]
35 fn encode_json<T: Encodable>(val: &T, wr: &mut Cursor<Vec<u8>>) {
36 write!(wr, "{}", json::as_json(val));
38 fn encode_opaque<T: Encodable>(val: &T, wr: Vec<u8>) {
39 let mut encoder = opaque::Encoder::new(wr);
40 val.encode(&mut encoder);
44 let target = Foo{baz: false,};
45 let proto = WireProtocol::JSON;
47 WireProtocol::JSON => encode_json(&target, &mut Cursor::new(Vec::new())),
48 WireProtocol::Opaque => encode_opaque(&target, Vec::new())