extern crate rustc_serialize;
use rustc_macros::{Decodable, Encodable};
-use rustc_serialize::opaque;
-use rustc_serialize::{Decodable, Encodable};
+use rustc_serialize::opaque::{MemDecoder, MemEncoder};
+use rustc_serialize::{Decodable, Encodable, Encoder};
use std::cell::{Cell, RefCell};
#[derive(Encodable, Decodable)]
fn main() {
let obj = B { foo: Cell::new(true), bar: RefCell::new(A { baz: 2 }) };
- let mut encoder = opaque::Encoder::new(vec![]);
- obj.encode(&mut encoder).unwrap();
- let mut decoder = opaque::Decoder::new(&encoder.data, 0);
+
+ let mut encoder = MemEncoder::new();
+ obj.encode(&mut encoder);
+ let data = encoder.finish();
+
+ let mut decoder = MemDecoder::new(&data, 0);
let obj2 = B::decode(&mut decoder);
+
assert_eq!(obj.foo.get(), obj2.foo.get());
assert_eq!(obj.bar.borrow().baz, obj2.bar.borrow().baz);
}