]> git.lizzy.rs Git - rust.git/blobdiff - src/test/ui-fulldeps/deriving-encodable-decodable-cell-refcell.rs
Move `finish` out of the `Encoder` trait.
[rust.git] / src / test / ui-fulldeps / deriving-encodable-decodable-cell-refcell.rs
index 5cc5c41364a66a1e31f1e43db5a9274bcbfec841..6097340a6e0c927784451578f549d1c7a79aec1c 100644 (file)
@@ -10,7 +10,7 @@
 
 use rustc_macros::{Decodable, Encodable};
 use rustc_serialize::opaque;
-use rustc_serialize::{Decodable, Encodable};
+use rustc_serialize::{Decodable, Encodable, Encoder};
 use std::cell::{Cell, RefCell};
 
 #[derive(Encodable, Decodable)]
@@ -26,10 +26,14 @@ struct B {
 
 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 = opaque::Encoder::new();
+    obj.encode(&mut encoder);
+    let data = encoder.finish();
+
+    let mut decoder = opaque::Decoder::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);
 }