diff --git a/src/collections/raw/all.rs b/src/collections/raw/all.rs index 92793f97..b0bf3d98 100644 --- a/src/collections/raw/all.rs +++ b/src/collections/raw/all.rs @@ -2,7 +2,7 @@ //! the trait of the same name. use serde::{de::Error as _, Deserialize, Deserializer}; -use serde_json::Value; +use serde_json::Value as JsonValue; use super::only; use crate::{ @@ -346,7 +346,7 @@ impl<'de> Deserialize<'de> for Event { use crate::util::try_variant_from_value as from_value; use EventType::*; - let value = Value::deserialize(deserializer)?; + let value = JsonValue::deserialize(deserializer)?; let event_type = get_field(&value, "type")?; match event_type { @@ -417,7 +417,7 @@ impl<'de> Deserialize<'de> for RoomEvent { use crate::util::try_variant_from_value as from_value; use EventType::*; - let value = Value::deserialize(deserializer)?; + let value = JsonValue::deserialize(deserializer)?; let event_type = get_field(&value, "type")?; match event_type { @@ -483,7 +483,7 @@ impl<'de> Deserialize<'de> for StateEvent { use crate::util::try_variant_from_value as from_value; use EventType::*; - let value = Value::deserialize(deserializer)?; + let value = JsonValue::deserialize(deserializer)?; let event_type = get_field(&value, "type")?; match event_type { diff --git a/src/collections/raw/only.rs b/src/collections/raw/only.rs index ea96c1a8..e98d8ddf 100644 --- a/src/collections/raw/only.rs +++ b/src/collections/raw/only.rs @@ -2,7 +2,7 @@ //! most" the trait of the same name. use serde::{de::Error as _, Deserialize, Deserializer}; -use serde_json::Value; +use serde_json::Value as JsonValue; pub use super::all::StateEvent; use crate::{ @@ -142,7 +142,7 @@ impl<'de> Deserialize<'de> for Event { use crate::util::try_variant_from_value as from_value; use EventType::*; - let value = Value::deserialize(deserializer)?; + let value = JsonValue::deserialize(deserializer)?; let event_type = get_field(&value, "type")?; match event_type { @@ -202,7 +202,7 @@ impl<'de> Deserialize<'de> for RoomEvent { use crate::util::try_variant_from_value as from_value; use EventType::*; - let value = Value::deserialize(deserializer)?; + let value = JsonValue::deserialize(deserializer)?; let event_type = get_field(&value, "type")?; match event_type { diff --git a/src/push_rules.rs b/src/push_rules.rs index 9795b5f6..2594286a 100644 --- a/src/push_rules.rs +++ b/src/push_rules.rs @@ -4,7 +4,7 @@ use ruma_events_macros::ruma_event; use serde::{ de::Error, ser::SerializeStruct as _, Deserialize, Deserializer, Serialize, Serializer, }; -use serde_json::{from_value, Value}; +use serde_json::{from_value, Value as JsonValue}; ruma_event! { /// Describes all push rules for a user. @@ -148,12 +148,13 @@ impl Serialize for PushCondition { } } +// TODO: Derive impl<'de> Deserialize<'de> for PushCondition { fn deserialize(deserializer: D) -> Result where D: Deserializer<'de>, { - let value: Value = Deserialize::deserialize(deserializer)?; + let value: JsonValue = Deserialize::deserialize(deserializer)?; let kind_value = match value.get("kind") { Some(value) => value.clone(), diff --git a/src/stripped.rs b/src/stripped.rs index 8297d9de..2555aec5 100644 --- a/src/stripped.rs +++ b/src/stripped.rs @@ -7,7 +7,7 @@ use ruma_identifiers::UserId; use serde::{de::DeserializeOwned, Deserialize, Deserializer, Serialize}; -use serde_json::Value; +use serde_json::Value as JsonValue; use crate::{ room::{ @@ -169,7 +169,7 @@ where D: Deserializer<'de>, { // TODO: Optimize - let value = Value::deserialize(deserializer)?; + let value = JsonValue::deserialize(deserializer)?; Ok(Self { content: get_field(&value, "content")?, @@ -182,7 +182,7 @@ where mod raw { use serde::{Deserialize, Deserializer}; - use serde_json::Value; + use serde_json::Value as JsonValue; use super::StrippedStateEvent; use crate::{ @@ -284,7 +284,7 @@ mod raw { use serde::de::Error as _; // TODO: Optimize - let value = Value::deserialize(deserializer)?; + let value = JsonValue::deserialize(deserializer)?; let event_type = get_field(&value, "type")?; match event_type { diff --git a/src/to_device.rs b/src/to_device.rs index 61327c1a..b41c8a3d 100644 --- a/src/to_device.rs +++ b/src/to_device.rs @@ -6,7 +6,7 @@ use ruma_identifiers::UserId; use serde::{de::DeserializeOwned, Deserialize, Deserializer, Serialize}; -use serde_json::Value; +use serde_json::Value as JsonValue; use crate::{ dummy::DummyEventContent, @@ -142,7 +142,7 @@ where { // TODO: Optimize, what should be optimized here? Can we expand this // comment? - let value = Value::deserialize(deserializer)?; + let value = JsonValue::deserialize(deserializer)?; Ok(Self { content: get_field(&value, "content")?, @@ -153,7 +153,7 @@ where mod raw { use serde::{Deserialize, Deserializer}; - use serde_json::Value; + use serde_json::Value as JsonValue; use super::ToDeviceEvent; use crate::{ @@ -231,7 +231,7 @@ mod raw { // TODO: Optimize, what should be optimized here? Can we expand this // comment? - let value = Value::deserialize(deserializer)?; + let value = JsonValue::deserialize(deserializer)?; let event_type = get_field(&value, "type")?; match event_type { diff --git a/src/util.rs b/src/util.rs index 65c909a6..5166405e 100644 --- a/src/util.rs +++ b/src/util.rs @@ -1,5 +1,5 @@ use serde::de::DeserializeOwned; -use serde_json::Value; +use serde_json::Value as JsonValue; use crate::TryFromRaw; @@ -12,7 +12,7 @@ pub fn try_convert_variant( .map_err(|err| err.to_string()) } -pub fn try_variant_from_value(value: Value, variant: fn(T) -> U) -> Result +pub fn try_variant_from_value(value: JsonValue, variant: fn(T) -> U) -> Result where T: DeserializeOwned, E: serde::de::Error, @@ -26,7 +26,7 @@ pub fn serde_json_error_to_generic_de_error(error: serde_js E::custom(error.to_string()) } -pub fn get_field(value: &Value, field: &'static str) -> Result +pub fn get_field(value: &JsonValue, field: &'static str) -> Result where T: DeserializeOwned, E: serde::de::Error,