diff --git a/serde/src/de/impls.rs b/serde/src/de/impls.rs index d2d4c337..0d1d8a4f 100644 --- a/serde/src/de/impls.rs +++ b/serde/src/de/impls.rs @@ -877,6 +877,14 @@ impl Deserialize for Result where T: Deserialize, E: Deserialize { impl ::de::Visitor for FieldVisitor { type Value = Field; + fn visit_usize(&mut self, value: usize) -> Result where E: Error { + match value { + 0 => Ok(Field::Ok), + 1 => Ok(Field::Err), + _ => Err(Error::unknown_field_error(&value.to_string())), + } + } + fn visit_str(&mut self, value: &str) -> Result where E: Error { match value { "Ok" => Ok(Field::Ok),