updated to master
This commit is contained in:
parent
41563ee01b
commit
ac86f4c941
|
@ -17,11 +17,11 @@ facilitate deserializing and serializing Rust structures.
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
rustc-serialize = { optional = true, version = "0.3.0" }
|
rustc-serialize = { optional = true, version = "0.3.0" }
|
||||||
serde = { optional = true, git = "https://github.com/alexcrichton/rust-serde", branch = "tweak-some-impls" }
|
serde = { optional = true }
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
default = ["rustc-serialize"]
|
default = ["rustc-serialize"]
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
rustc-serialize = "0.3"
|
rustc-serialize = "0.3"
|
||||||
serde_macros = { git = "https://github.com/alexcrichton/rust-serde", branch = "tweak-some-impls" }
|
serde_macros = "*"
|
||||||
|
|
|
@ -35,6 +35,8 @@ pub enum DecodeErrorKind {
|
||||||
ApplicationError(String),
|
ApplicationError(String),
|
||||||
/// A field was expected, but none was found.
|
/// A field was expected, but none was found.
|
||||||
ExpectedField(/* type */ Option<&'static str>),
|
ExpectedField(/* type */ Option<&'static str>),
|
||||||
|
/// A field was found, but it was not an expected one.
|
||||||
|
UnknownField,
|
||||||
/// A field was found, but it had the wrong type.
|
/// A field was found, but it had the wrong type.
|
||||||
ExpectedType(/* expected */ &'static str, /* found */ &'static str),
|
ExpectedType(/* expected */ &'static str, /* found */ &'static str),
|
||||||
/// The nth map key was expected, but none was found.
|
/// The nth map key was expected, but none was found.
|
||||||
|
@ -149,6 +151,7 @@ impl fmt::Display for DecodeError {
|
||||||
None => write!(f, "expected a value"),
|
None => write!(f, "expected a value"),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
UnknownField => write!(f, "unknown field"),
|
||||||
ExpectedType(expected, found) => {
|
ExpectedType(expected, found) => {
|
||||||
fn humanize(s: &str) -> String {
|
fn humanize(s: &str) -> String {
|
||||||
if s == "section" {
|
if s == "section" {
|
||||||
|
@ -194,6 +197,7 @@ impl error::Error for DecodeError {
|
||||||
match self.kind {
|
match self.kind {
|
||||||
ApplicationError(ref s) => &**s,
|
ApplicationError(ref s) => &**s,
|
||||||
ExpectedField(..) => "expected a field",
|
ExpectedField(..) => "expected a field",
|
||||||
|
UnknownField => "found an unknown field",
|
||||||
ExpectedType(..) => "expected a type",
|
ExpectedType(..) => "expected a type",
|
||||||
ExpectedMapKey(..) => "expected a map key",
|
ExpectedMapKey(..) => "expected a map key",
|
||||||
ExpectedMapElement(..) => "expected a map element",
|
ExpectedMapElement(..) => "expected a map element",
|
||||||
|
|
|
@ -15,7 +15,13 @@ fn se2toml(err: de::value::Error, ty: &'static str) -> DecodeError {
|
||||||
field: Some(s.to_string()),
|
field: Some(s.to_string()),
|
||||||
kind: DecodeErrorKind::ExpectedField(Some(ty)),
|
kind: DecodeErrorKind::ExpectedField(Some(ty)),
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
de::value::Error::UnknownFieldError(s) => {
|
||||||
|
DecodeError {
|
||||||
|
field: Some(s.to_string()),
|
||||||
|
kind: DecodeErrorKind::UnknownField,
|
||||||
|
}
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -91,6 +97,12 @@ impl de::Error for DecodeError {
|
||||||
kind: DecodeErrorKind::ExpectedField(None),
|
kind: DecodeErrorKind::ExpectedField(None),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
fn unknown_field_error(name: &str) -> DecodeError {
|
||||||
|
DecodeError {
|
||||||
|
field: Some(name.to_string()),
|
||||||
|
kind: DecodeErrorKind::UnknownField,
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl de::Deserializer for SubDecoder {
|
impl de::Deserializer for SubDecoder {
|
||||||
|
|
Loading…
Reference in a new issue