From 523a635dc88bc7890a0e1d3c062a8165259761d6 Mon Sep 17 00:00:00 2001 From: troido Date: Thu, 24 Sep 2020 09:38:18 +0200 Subject: don't try to read into the json data structure all manually --- src/pos.rs | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) (limited to 'src/pos.rs') diff --git a/src/pos.rs b/src/pos.rs index 9263561..4c0d9cc 100644 --- a/src/pos.rs +++ b/src/pos.rs @@ -2,7 +2,7 @@ use std::ops::{Add, Sub}; use serde_json::Value; -use serde::{Serialize, Serializer, ser::SerializeTuple}; +use serde::{Serialize, Serializer, Deserialize, Deserializer}; use crate::util::clamp; #[derive(Debug, Hash, PartialEq, Eq, Clone, Copy, Default)] @@ -47,13 +47,17 @@ impl Pos { impl Serialize for Pos { fn serialize(&self, serializer: S) -> Result - where - S: Serializer, + where S: Serializer, { - let mut tup = serializer.serialize_tuple(2)?; - tup.serialize_element(&self.x)?; - tup.serialize_element(&self.y)?; - tup.end() + (self.x, self.y).serialize(serializer) + } +} +impl<'de> Deserialize<'de> for Pos { + fn deserialize(deserializer: D) -> Result + where D: Deserializer<'de>, + { + let (x, y) = <(i64, i64)>::deserialize(deserializer)?; + Ok(Self{x, y}) } } -- cgit