change error handlers to be mutable

This commit is contained in:
Erick Tryzelaar
2014-08-18 07:39:34 -07:00
parent b09c6f3a87
commit 45e8bd6834
6 changed files with 52 additions and 45 deletions
+5 -5
View File
@@ -231,27 +231,27 @@ mod deserializer {
impl de::Deserializer<Error> for AnimalDeserializer {
#[inline]
fn end_of_stream_error(&self) -> Error {
fn end_of_stream_error(&mut self) -> Error {
EndOfStream
}
#[inline]
fn syntax_error(&self, _token: de::Token, _expected: &[de::TokenKind]) -> Error {
fn syntax_error(&mut self, _token: de::Token, _expected: &[de::TokenKind]) -> Error {
SyntaxError
}
#[inline]
fn missing_field_error(&self, _field: &'static str) -> Error {
fn missing_field_error(&mut self, _field: &'static str) -> Error {
SyntaxError
}
#[inline]
fn unexpected_name_error(&self, _token: de::Token) -> Error {
fn unexpected_name_error(&mut self, _token: de::Token) -> Error {
SyntaxError
}
#[inline]
fn conversion_error(&self, _token: de::Token) -> Error {
fn conversion_error(&mut self, _token: de::Token) -> Error {
SyntaxError
}
}
+5 -5
View File
@@ -227,27 +227,27 @@ mod deserializer {
impl de::Deserializer<Error> for IntDeserializer {
#[inline]
fn end_of_stream_error(&self) -> Error {
fn end_of_stream_error(&mut self) -> Error {
EndOfStream
}
#[inline]
fn syntax_error(&self, _token: de::Token, _expected: &[de::TokenKind]) -> Error {
fn syntax_error(&mut self, _token: de::Token, _expected: &[de::TokenKind]) -> Error {
SyntaxError
}
#[inline]
fn missing_field_error(&self, _field: &'static str) -> Error {
fn missing_field_error(&mut self, _field: &'static str) -> Error {
SyntaxError
}
#[inline]
fn unexpected_name_error(&self, _token: de::Token) -> Error {
fn unexpected_name_error(&mut self, _token: de::Token) -> Error {
SyntaxError
}
#[inline]
fn conversion_error(&self, _token: de::Token) -> Error {
fn conversion_error(&mut self, _token: de::Token) -> Error {
SyntaxError
}
}
+5 -5
View File
@@ -351,27 +351,27 @@ mod deserializer {
impl de::Deserializer<Error> for OuterDeserializer {
#[inline]
fn end_of_stream_error(&self) -> Error {
fn end_of_stream_error(&mut self) -> Error {
EndOfStream
}
#[inline]
fn syntax_error(&self, _token: de::Token, _expected: &[de::TokenKind]) -> Error {
fn syntax_error(&mut self, _token: de::Token, _expected: &[de::TokenKind]) -> Error {
SyntaxError
}
#[inline]
fn missing_field_error(&self, _field: &'static str) -> Error {
fn missing_field_error(&mut self, _field: &'static str) -> Error {
SyntaxError
}
#[inline]
fn unexpected_name_error(&self, _token: de::Token) -> Error {
fn unexpected_name_error(&mut self, _token: de::Token) -> Error {
SyntaxError
}
#[inline]
fn conversion_error(&self, _token: de::Token) -> Error {
fn conversion_error(&mut self, _token: de::Token) -> Error {
SyntaxError
}
}
+10 -10
View File
@@ -295,27 +295,27 @@ mod deserializer {
impl de::Deserializer<Error> for IntDeserializer {
#[inline]
fn end_of_stream_error(&self) -> Error {
fn end_of_stream_error(&mut self) -> Error {
EndOfStream
}
#[inline]
fn syntax_error(&self, _token: de::Token, _expected: &[de::TokenKind]) -> Error {
fn syntax_error(&mut self, _token: de::Token, _expected: &[de::TokenKind]) -> Error {
SyntaxError
}
#[inline]
fn missing_field_error(&self, _field: &'static str) -> Error {
fn missing_field_error(&mut self, _field: &'static str) -> Error {
SyntaxError
}
#[inline]
fn unexpected_name_error(&self, _token: de::Token) -> Error {
fn unexpected_name_error(&mut self, _token: de::Token) -> Error {
SyntaxError
}
#[inline]
fn conversion_error(&self, _token: de::Token) -> Error {
fn conversion_error(&mut self, _token: de::Token) -> Error {
SyntaxError
}
}
@@ -365,27 +365,27 @@ mod deserializer {
impl de::Deserializer<Error> for U8Deserializer {
#[inline]
fn end_of_stream_error(&self) -> Error {
fn end_of_stream_error(&mut self) -> Error {
EndOfStream
}
#[inline]
fn syntax_error(&self, _token: de::Token, _expected: &[de::TokenKind]) -> Error {
fn syntax_error(&mut self, _token: de::Token, _expected: &[de::TokenKind]) -> Error {
SyntaxError
}
#[inline]
fn missing_field_error(&self, _field: &'static str) -> Error {
fn missing_field_error(&mut self, _field: &'static str) -> Error {
SyntaxError
}
#[inline]
fn unexpected_name_error(&self, _token: de::Token) -> Error {
fn unexpected_name_error(&mut self, _token: de::Token) -> Error {
SyntaxError
}
#[inline]
fn conversion_error(&self, _token: de::Token) -> Error {
fn conversion_error(&mut self, _token: de::Token) -> Error {
SyntaxError
}
}
+17 -10
View File
@@ -176,15 +176,22 @@ macro_rules! to_result {
}
pub trait Deserializer<E>: Iterator<Result<Token, E>> {
fn end_of_stream_error(&self) -> E;
/// Called when a `Deserializable` expected more tokens, but the
/// `Deserializer` was empty.
fn end_of_stream_error(&mut self) -> E;
fn syntax_error(&self, token: Token, expected: &[TokenKind]) -> E;
/// Called when a `Deserializer` was unable to properly parse the stream.
fn syntax_error(&mut self, token: Token, expected: &[TokenKind]) -> E;
fn unexpected_name_error(&self, token: Token) -> E;
/// Called when a named structure or enum got a name that it didn't expect.
fn unexpected_name_error(&mut self, token: Token) -> E;
fn conversion_error(&self, token: Token) -> E;
/// Called when a value was unable to be coerced into another value.
fn conversion_error(&mut self, token: Token) -> E;
fn missing_field_error(&self, field: &'static str) -> E;
/// Called when a `Deserializable` structure did not deserialize a field
/// named `field`.
fn missing_field_error(&mut self, field: &'static str) -> E;
#[inline]
fn expect_token(&mut self) -> Result<Token, E> {
@@ -1132,23 +1139,23 @@ mod tests {
}
impl<Iter: Iterator<Token>> Deserializer<Error> for TokenDeserializer<Iter> {
fn end_of_stream_error(&self) -> Error {
fn end_of_stream_error(&mut self) -> Error {
EndOfStream
}
fn syntax_error(&self, _token: Token, _expected: &[TokenKind]) -> Error {
fn syntax_error(&mut self, _token: Token, _expected: &[TokenKind]) -> Error {
SyntaxError
}
fn unexpected_name_error(&self, _token: Token) -> Error {
fn unexpected_name_error(&mut self, _token: Token) -> Error {
SyntaxError
}
fn conversion_error(&self, _token: Token) -> Error {
fn conversion_error(&mut self, _token: Token) -> Error {
SyntaxError
}
fn missing_field_error(&self, _field: &'static str) -> Error {
fn missing_field_error(&mut self, _field: &'static str) -> Error {
IncompleteValue
}
}
+10 -10
View File
@@ -647,23 +647,23 @@ impl Iterator<Result<de::Token, ParserError>> for JsonDeserializer {
}
impl de::Deserializer<ParserError> for JsonDeserializer {
fn end_of_stream_error(&self) -> ParserError {
fn end_of_stream_error(&mut self) -> ParserError {
SyntaxError(EOFWhileParsingValue, 0, 0)
}
fn syntax_error(&self, _token: de::Token, _expected: &[de::TokenKind]) -> ParserError {
fn syntax_error(&mut self, _token: de::Token, _expected: &[de::TokenKind]) -> ParserError {
SyntaxError(InvalidSyntax, 0, 0)
}
fn unexpected_name_error(&self, _token: de::Token) -> ParserError {
fn unexpected_name_error(&mut self, _token: de::Token) -> ParserError {
SyntaxError(InvalidSyntax, 0, 0)
}
fn conversion_error(&self, _token: de::Token) -> ParserError {
fn conversion_error(&mut self, _token: de::Token) -> ParserError {
SyntaxError(InvalidSyntax, 0, 0)
}
fn missing_field_error(&self, field: &'static str) -> ParserError {
fn missing_field_error(&mut self, field: &'static str) -> ParserError {
SyntaxError(MissingField(field), 0, 0)
}
@@ -2023,23 +2023,23 @@ impl<T: Iterator<char>> Parser<T> {
}
impl<T: Iterator<char>> de::Deserializer<ParserError> for Parser<T> {
fn end_of_stream_error(&self) -> ParserError {
fn end_of_stream_error(&mut self) -> ParserError {
SyntaxError(EOFWhileParsingValue, self.line, self.col)
}
fn syntax_error(&self, _token: de::Token, _expected: &[de::TokenKind]) -> ParserError {
fn syntax_error(&mut self, _token: de::Token, _expected: &[de::TokenKind]) -> ParserError {
SyntaxError(InvalidSyntax, self.line, self.col)
}
fn unexpected_name_error(&self, _token: de::Token) -> ParserError {
fn unexpected_name_error(&mut self, _token: de::Token) -> ParserError {
SyntaxError(InvalidSyntax, self.line, self.col)
}
fn conversion_error(&self, _token: de::Token) -> ParserError {
fn conversion_error(&mut self, _token: de::Token) -> ParserError {
SyntaxError(InvalidSyntax, self.line, self.col)
}
fn missing_field_error(&self, field: &'static str) -> ParserError {
fn missing_field_error(&mut self, field: &'static str) -> ParserError {
SyntaxError(MissingField(field), self.line, self.col)
}