From 8e8ec73395dc0c34cead55afdcde92126205ae8e Mon Sep 17 00:00:00 2001 From: Lionel Sambuc Date: Tue, 3 Sep 2019 15:52:58 +0200 Subject: [PATCH] Adapted to Mercator's JSON API format --- src/storage.rs | 49 ++++++++++++++++++++++--------------------------- 1 file changed, 22 insertions(+), 27 deletions(-) diff --git a/src/storage.rs b/src/storage.rs index a661782..cd993e4 100644 --- a/src/storage.rs +++ b/src/storage.rs @@ -3,26 +3,21 @@ use std::io::BufWriter; use serde::Serialize; -#[derive(Clone, Debug, Serialize)] +#[derive(Clone, Debug, Deserialize, Serialize)] pub struct Space { pub name: String, - pub system: CoordinateSystem, -} - -#[derive(Clone, Debug, Serialize)] -pub struct CoordinateSystem { pub origin: Vec, pub axes: Vec, } -#[derive(Clone, Debug, Serialize)] +#[derive(Clone, Debug, Deserialize, Serialize)] pub struct Axis { pub measurement_unit: String, pub graduation: Graduation, pub unit_vector: Vec, } -#[derive(Clone, Debug, Serialize)] +#[derive(Clone, Debug, Deserialize, Serialize)] pub struct Graduation { pub set: String, pub minimum: f64, @@ -30,12 +25,30 @@ pub struct Graduation { pub steps: u64, } -#[derive(Clone, Debug, Serialize)] +#[derive(Clone, Debug, Deserialize, Serialize)] pub struct SpatialObject { pub properties: Properties, pub shapes: Vec, } +#[derive(Clone, Debug, Deserialize, Serialize)] +pub struct Shape { + #[serde(rename = "type")] + pub type_name: String, + #[serde(rename = "space")] + pub reference_space: String, + pub vertices: Vec, +} + +type Point = Vec; + +#[derive(Clone, Debug, Deserialize, Serialize)] +pub struct Properties { + #[serde(rename = "type")] + pub type_name: String, + pub id: String, +} + impl SpatialObject { pub fn new(shapes: Vec, id: String) -> Self { SpatialObject { @@ -48,24 +61,6 @@ impl SpatialObject { } } -#[derive(Clone, Debug, Serialize)] -pub struct Shape { - #[serde(rename = "type")] - pub type_name: String, - #[serde(rename = "space")] - pub reference_space: String, - pub vertices: Vec, -} - -type Point = Vec; - -#[derive(Clone, Debug, Serialize)] -pub struct Properties { - #[serde(rename = "type")] - pub type_name: String, - pub id: String, -} - mod json { use super::*;