From ccc3d023a4c2d110f1ef0a942349aa79c29ed625 Mon Sep 17 00:00:00 2001 From: georgeroman Date: Mon, 29 Jul 2019 09:35:15 +0000 Subject: [PATCH] Bug 1569466 - Implement Deserialize for ErrorStatus. r=ato Implement Deserialize for ErrorStatus Differential Revision: https://phabricator.services.mozilla.com/D39632 --HG-- extra : moz-landing-system : lando --- testing/webdriver/src/error.rs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/testing/webdriver/src/error.rs b/testing/webdriver/src/error.rs index 85821e8738a1..04a2357017d5 100644 --- a/testing/webdriver/src/error.rs +++ b/testing/webdriver/src/error.rs @@ -1,5 +1,6 @@ use base64::DecodeError; use http::StatusCode; +use serde::de::{Deserialize, Deserializer}; use serde::ser::{Serialize, Serializer}; use serde_json; use std::borrow::Cow; @@ -149,6 +150,16 @@ impl Serialize for ErrorStatus { } } +impl<'de> Deserialize<'de> for ErrorStatus { + fn deserialize(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + let error_string = String::deserialize(deserializer)?; + Ok(ErrorStatus::from(error_string)) + } +} + impl ErrorStatus { /// Returns the string serialisation of the error type. pub fn error_code(&self) -> &'static str {