]> git.lizzy.rs Git - rust.git/blob - src/test/ui-fulldeps/deriving-encodable-decodable-box.rs
Rollup merge of #100586 - the8472:available_parallelism_2, r=jyn514
[rust.git] / src / test / ui-fulldeps / deriving-encodable-decodable-box.rs
1 // run-pass
2
3 #![allow(unused_imports)]
4 #![feature(rustc_private)]
5
6 extern crate rustc_macros;
7 extern crate rustc_serialize;
8
9 use rustc_macros::{Decodable, Encodable};
10 use rustc_serialize::opaque::{MemDecoder, MemEncoder};
11 use rustc_serialize::{Decodable, Encodable, Encoder};
12
13 #[derive(Encodable, Decodable)]
14 struct A {
15     foo: Box<[bool]>,
16 }
17
18 fn main() {
19     let obj = A { foo: Box::new([true, false]) };
20
21     let mut encoder = MemEncoder::new();
22     obj.encode(&mut encoder);
23     let data = encoder.finish();
24
25     let mut decoder = MemDecoder::new(&data, 0);
26     let obj2 = A::decode(&mut decoder);
27
28     assert_eq!(obj.foo, obj2.foo);
29 }