1
Fork 0

Rename rustc_serialize::opaque::Encoder as MemEncoder.

This avoids the name clash with `rustc_serialize::Encoder` (a trait),
and allows lots qualifiers to be removed and imports to be simplified
(e.g. fewer `as` imports).

(This was previously merged as commit 5 in #94732 and then was reverted
in #97905 because of a perf regression caused by commit 4 in #94732.)
This commit is contained in:
Nicholas Nethercote 2022-06-14 14:52:01 +10:00
parent ca122c7ebb
commit abe45a9ffa
22 changed files with 124 additions and 141 deletions

View file

@ -1,7 +1,7 @@
#![allow(rustc::internal)]
use rustc_macros::{Decodable, Encodable};
use rustc_serialize::opaque::{Decoder, Encoder};
use rustc_serialize::opaque::{MemDecoder, MemEncoder};
use rustc_serialize::{Decodable, Encodable, Encoder as EncoderTrait};
use std::fmt::Debug;
@ -28,16 +28,18 @@ struct Struct {
q: Option<u32>,
}
fn check_round_trip<T: Encodable<Encoder> + for<'a> Decodable<Decoder<'a>> + PartialEq + Debug>(
fn check_round_trip<
T: Encodable<MemEncoder> + for<'a> Decodable<MemDecoder<'a>> + PartialEq + Debug,
>(
values: Vec<T>,
) {
let mut encoder = Encoder::new();
let mut encoder = MemEncoder::new();
for value in &values {
Encodable::encode(value, &mut encoder);
}
let data = encoder.finish().unwrap();
let mut decoder = Decoder::new(&data[..], 0);
let mut decoder = MemDecoder::new(&data[..], 0);
for value in values {
let decoded = Decodable::decode(&mut decoder);