mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-25 16:24:46 +00:00
Delete Decoder::read_enum
This commit is contained in:
parent
60b71f56e7
commit
c6bd6b444c
@ -73,20 +73,15 @@ fn decodable_body(
|
|||||||
variants.len()
|
variants.len()
|
||||||
);
|
);
|
||||||
quote! {
|
quote! {
|
||||||
::rustc_serialize::Decoder::read_enum(
|
::rustc_serialize::Decoder::read_enum_variant(
|
||||||
__decoder,
|
__decoder,
|
||||||
|__decoder| {
|
&[#names],
|
||||||
::rustc_serialize::Decoder::read_enum_variant(
|
|__decoder, __variant_idx| {
|
||||||
__decoder,
|
match __variant_idx {
|
||||||
&[#names],
|
#match_inner
|
||||||
|__decoder, __variant_idx| {
|
_ => panic!(#message),
|
||||||
match __variant_idx {
|
}
|
||||||
#match_inner
|
})
|
||||||
_ => panic!(#message),
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -201,15 +201,6 @@ pub trait Decoder {
|
|||||||
fn read_str(&mut self) -> Cow<'_, str>;
|
fn read_str(&mut self) -> Cow<'_, str>;
|
||||||
fn read_raw_bytes_into(&mut self, s: &mut [u8]);
|
fn read_raw_bytes_into(&mut self, s: &mut [u8]);
|
||||||
|
|
||||||
// Compound types:
|
|
||||||
#[inline]
|
|
||||||
fn read_enum<T, F>(&mut self, f: F) -> T
|
|
||||||
where
|
|
||||||
F: FnOnce(&mut Self) -> T,
|
|
||||||
{
|
|
||||||
f(self)
|
|
||||||
}
|
|
||||||
|
|
||||||
#[inline]
|
#[inline]
|
||||||
fn read_enum_variant<T, F>(&mut self, _names: &[&str], mut f: F) -> T
|
fn read_enum_variant<T, F>(&mut self, _names: &[&str], mut f: F) -> T
|
||||||
where
|
where
|
||||||
@ -264,12 +255,10 @@ pub trait Decoder {
|
|||||||
where
|
where
|
||||||
F: FnMut(&mut Self, bool) -> T,
|
F: FnMut(&mut Self, bool) -> T,
|
||||||
{
|
{
|
||||||
self.read_enum(move |this| {
|
self.read_enum_variant(&["None", "Some"], move |this, idx| match idx {
|
||||||
this.read_enum_variant(&["None", "Some"], move |this, idx| match idx {
|
0 => f(this, false),
|
||||||
0 => f(this, false),
|
1 => f(this, true),
|
||||||
1 => f(this, true),
|
_ => panic!("read_option: expected 0 for None or 1 for Some"),
|
||||||
_ => panic!("read_option: expected 0 for None or 1 for Some"),
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -582,12 +571,10 @@ impl<S: Encoder, T1: Encodable<S>, T2: Encodable<S>> Encodable<S> for Result<T1,
|
|||||||
|
|
||||||
impl<D: Decoder, T1: Decodable<D>, T2: Decodable<D>> Decodable<D> for Result<T1, T2> {
|
impl<D: Decoder, T1: Decodable<D>, T2: Decodable<D>> Decodable<D> for Result<T1, T2> {
|
||||||
fn decode(d: &mut D) -> Result<T1, T2> {
|
fn decode(d: &mut D) -> Result<T1, T2> {
|
||||||
d.read_enum(|d| {
|
d.read_enum_variant(&["Ok", "Err"], |d, disr| match disr {
|
||||||
d.read_enum_variant(&["Ok", "Err"], |d, disr| match disr {
|
0 => Ok(d.read_enum_variant_arg(|d| T1::decode(d))),
|
||||||
0 => Ok(d.read_enum_variant_arg(|d| T1::decode(d))),
|
1 => Err(d.read_enum_variant_arg(|d| T2::decode(d))),
|
||||||
1 => Err(d.read_enum_variant_arg(|d| T2::decode(d))),
|
_ => panic!("Encountered invalid discriminant while decoding `Result`."),
|
||||||
_ => panic!("Encountered invalid discriminant while decoding `Result`."),
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user