diff options
| author | Mark Rousskov <mark.simulacrum@gmail.com> | 2022-02-09 17:42:38 -0500 | 
|---|---|---|
| committer | Mark Rousskov <mark.simulacrum@gmail.com> | 2022-02-20 18:58:23 -0500 | 
| commit | 38e6dad1d3ad540e76ee400daa76cbeeb02925df (patch) | |
| tree | ab4daa105de97e607c89ce84fc9b38929ada6ae7 /compiler/rustc_serialize/src/serialize.rs | |
| parent | 24dc0521324830dd4a64f528413a1650493ced7a (diff) | |
| download | rust-38e6dad1d3ad540e76ee400daa76cbeeb02925df.tar.gz rust-38e6dad1d3ad540e76ee400daa76cbeeb02925df.zip | |
Delete Decoder::read_option
Diffstat (limited to 'compiler/rustc_serialize/src/serialize.rs')
| -rw-r--r-- | compiler/rustc_serialize/src/serialize.rs | 18 | 
1 files changed, 5 insertions, 13 deletions
| diff --git a/compiler/rustc_serialize/src/serialize.rs b/compiler/rustc_serialize/src/serialize.rs index 9a45bc56ce1..16d9270b609 100644 --- a/compiler/rustc_serialize/src/serialize.rs +++ b/compiler/rustc_serialize/src/serialize.rs @@ -210,18 +210,6 @@ pub trait Decoder { f(self, disr) } - // Specialized types: - fn read_option<T, F>(&mut self, mut f: F) -> T - where - F: FnMut(&mut Self, bool) -> T, - { - self.read_enum_variant(move |this, idx| match idx { - 0 => f(this, false), - 1 => f(this, true), - _ => panic!("read_option: expected 0 for None or 1 for Some"), - }) - } - fn read_seq<T, F>(&mut self, f: F) -> T where F: FnOnce(&mut Self, usize) -> T, @@ -501,7 +489,11 @@ impl<S: Encoder, T: Encodable<S>> Encodable<S> for Option<T> { impl<D: Decoder, T: Decodable<D>> Decodable<D> for Option<T> { fn decode(d: &mut D) -> Option<T> { - d.read_option(|d, b| if b { Some(Decodable::decode(d)) } else { None }) + d.read_enum_variant(move |this, idx| match idx { + 0 => None, + 1 => Some(Decodable::decode(this)), + _ => panic!("Encountered invalid discriminant while decoding `Option`."), + }) } } | 
