diff options
Diffstat (limited to 'src/pos.rs')
| -rw-r--r-- | src/pos.rs | 20 |
1 files changed, 16 insertions, 4 deletions
@@ -1,18 +1,17 @@ - use std::ops::Add; use serde_json::{Value, json}; -use specs::{Component, VecStorage}; +use serde::{Serialize, Serializer, ser::SerializeTuple}; use super::util::{clamp, ToJson}; -#[derive(Component, Debug, Hash, PartialEq, Eq, Clone, Copy)] -#[storage(VecStorage)] +#[derive(Debug, Hash, PartialEq, Eq, Clone, Copy)] pub struct Pos { pub x: i32, pub y: i32 } + impl Pos { pub fn new(x: i32, y: i32) -> Pos { @@ -27,6 +26,19 @@ impl Pos { } } + +impl Serialize for Pos { + fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> + where + S: Serializer, + { + let mut tup = serializer.serialize_tuple(2)?; + tup.serialize_element(&self.x)?; + tup.serialize_element(&self.y)?; + tup.end() + } +} + impl Add<Pos> for Pos { type Output = Pos; |
