From c1e0b8f4a7c4e7e26cb742692fba4f37aec63e62 Mon Sep 17 00:00:00 2001 From: sunli Date: Thu, 7 May 2020 18:49:09 +0800 Subject: [PATCH] Add Any::parse_value method. #56 --- src/scalars/any.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/scalars/any.rs b/src/scalars/any.rs index 31a4bafd..025f9819 100644 --- a/src/scalars/any.rs +++ b/src/scalars/any.rs @@ -1,6 +1,7 @@ use crate::{Result, ScalarType, Value}; use async_graphql_derive::Scalar; use itertools::Itertools; +use serde::de::DeserializeOwned; /// Any scalar /// @@ -31,6 +32,13 @@ impl ScalarType for Any { } } +impl Any { + /// Parse this `Any` value to T by `serde_json`. + fn parse_value(&self) -> std::result::Result { + serde_json::from_value(self.to_json().unwrap()) + } +} + fn gql_value_to_json_value(value: &Value) -> serde_json::Value { match value { Value::Null => serde_json::Value::Null,