diff options
| -rw-r--r-- | src/librbml/lib.rs | 14 | ||||
| -rw-r--r-- | src/libserialize/json.rs | 11 | ||||
| -rw-r--r-- | src/libserialize/serialize.rs | 6 |
3 files changed, 17 insertions, 14 deletions
diff --git a/src/librbml/lib.rs b/src/librbml/lib.rs index 28d5e1812f0..bbedbc75395 100644 --- a/src/librbml/lib.rs +++ b/src/librbml/lib.rs @@ -499,8 +499,9 @@ pub mod reader { Ok(result) } - fn read_enum_variant<T, F>(&mut self, _: &[&str], f: F) -> DecodeResult<T> where - F: FnOnce(&mut Decoder<'doc>, uint) -> DecodeResult<T>, + fn read_enum_variant<T, F>(&mut self, _: &[&str], + mut f: F) -> DecodeResult<T> + where F: FnMut(&mut Decoder<'doc>, uint) -> DecodeResult<T>, { debug!("read_enum_variant()"); let idx = try!(self._next_uint(EsEnumVid)); @@ -526,8 +527,9 @@ pub mod reader { f(self) } - fn read_enum_struct_variant<T, F>(&mut self, _: &[&str], f: F) -> DecodeResult<T> where - F: FnOnce(&mut Decoder<'doc>, uint) -> DecodeResult<T>, + fn read_enum_struct_variant<T, F>(&mut self, _: &[&str], + mut f: F) -> DecodeResult<T> + where F: FnMut(&mut Decoder<'doc>, uint) -> DecodeResult<T>, { debug!("read_enum_struct_variant()"); let idx = try!(self._next_uint(EsEnumVid)); @@ -610,8 +612,8 @@ pub mod reader { self.read_tuple_arg(idx, f) } - fn read_option<T, F>(&mut self, f: F) -> DecodeResult<T> where - F: FnOnce(&mut Decoder<'doc>, bool) -> DecodeResult<T>, + fn read_option<T, F>(&mut self, mut f: F) -> DecodeResult<T> where + F: FnMut(&mut Decoder<'doc>, bool) -> DecodeResult<T>, { debug!("read_option()"); self.read_enum("Option", move |this| { diff --git a/src/libserialize/json.rs b/src/libserialize/json.rs index d34828ccee3..6047c76d093 100644 --- a/src/libserialize/json.rs +++ b/src/libserialize/json.rs @@ -2082,8 +2082,9 @@ impl ::Decoder<DecoderError> for Decoder { f(self) } - fn read_enum_variant<T, F>(&mut self, names: &[&str], f: F) -> DecodeResult<T> where - F: FnOnce(&mut Decoder, uint) -> DecodeResult<T>, + fn read_enum_variant<T, F>(&mut self, names: &[&str], + mut f: F) -> DecodeResult<T> + where F: FnMut(&mut Decoder, uint) -> DecodeResult<T>, { debug!("read_enum_variant(names={})", names); let name = match self.pop() { @@ -2133,7 +2134,7 @@ impl ::Decoder<DecoderError> for Decoder { } fn read_enum_struct_variant<T, F>(&mut self, names: &[&str], f: F) -> DecodeResult<T> where - F: FnOnce(&mut Decoder, uint) -> DecodeResult<T>, + F: FnMut(&mut Decoder, uint) -> DecodeResult<T>, { debug!("read_enum_struct_variant(names={})", names); self.read_enum_variant(names, f) @@ -2230,8 +2231,8 @@ impl ::Decoder<DecoderError> for Decoder { self.read_tuple_arg(idx, f) } - fn read_option<T, F>(&mut self, f: F) -> DecodeResult<T> where - F: FnOnce(&mut Decoder, bool) -> DecodeResult<T>, + fn read_option<T, F>(&mut self, mut f: F) -> DecodeResult<T> where + F: FnMut(&mut Decoder, bool) -> DecodeResult<T>, { debug!("read_option()"); match self.pop() { diff --git a/src/libserialize/serialize.rs b/src/libserialize/serialize.rs index 98bd2f6bc93..0e0d3b4115b 100644 --- a/src/libserialize/serialize.rs +++ b/src/libserialize/serialize.rs @@ -120,12 +120,12 @@ pub trait Decoder<E> { F: FnOnce(&mut Self) -> Result<T, E>; fn read_enum_variant<T, F>(&mut self, names: &[&str], f: F) -> Result<T, E> where - F: FnOnce(&mut Self, uint) -> Result<T, E>; + F: FnMut(&mut Self, uint) -> Result<T, E>; fn read_enum_variant_arg<T, F>(&mut self, a_idx: uint, f: F) -> Result<T, E> where F: FnOnce(&mut Self) -> Result<T, E>; fn read_enum_struct_variant<T, F>(&mut self, names: &[&str], f: F) -> Result<T, E> where - F: FnOnce(&mut Self, uint) -> Result<T, E>; + F: FnMut(&mut Self, uint) -> Result<T, E>; fn read_enum_struct_variant_field<T, F>(&mut self, &f_name: &str, f_idx: uint, @@ -154,7 +154,7 @@ pub trait Decoder<E> { // Specialized types: fn read_option<T, F>(&mut self, f: F) -> Result<T, E> where - F: FnOnce(&mut Self, bool) -> Result<T, E>; + F: FnMut(&mut Self, bool) -> Result<T, E>; fn read_seq<T, F>(&mut self, f: F) -> Result<T, E> where F: FnOnce(&mut Self, uint) -> Result<T, E>; |
