From 4611401345fcc2c09113c13cbc10aec4d92c676b Mon Sep 17 00:00:00 2001 From: Raphael Nestler Date: Sun, 5 May 2024 21:44:40 +0200 Subject: [PATCH 1/2] Add linked_spaces field --- src/status.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/status.rs b/src/status.rs index 46ad91a..faa076e 100644 --- a/src/status.rs +++ b/src/status.rs @@ -225,6 +225,12 @@ pub enum ApiVersion { V14, } +#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq)] +pub struct LinkedSpace { + endpoint: String, + website: String, +} + /// The main SpaceAPI status object. #[derive(Serialize, Deserialize, Default, Debug, Clone, PartialEq)] pub struct Status { @@ -260,6 +266,8 @@ pub struct Status { pub links: Option>, #[serde(skip_serializing_if = "Option::is_none")] pub membership_plans: Option>, + #[serde(skip_serializing_if = "Option::is_none")] + pub linked_spaces: Option>, // SpaceAPI internal usage #[serde(skip_serializing_if = "Option::is_none")] From d08cde0b5cfcb49ccf21dcc9e7f0aea450bd3ec9 Mon Sep 17 00:00:00 2001 From: Raphael Nestler Date: Sun, 5 May 2024 22:01:02 +0200 Subject: [PATCH 2/2] Add country_code, hint and areas to Location --- src/status.rs | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/status.rs b/src/status.rs index faa076e..411e578 100644 --- a/src/status.rs +++ b/src/status.rs @@ -7,6 +7,15 @@ use crate::sensors::Sensors; type Extensions = BTreeMap; +#[derive(Serialize, Deserialize, Default, Debug, Clone, PartialEq)] +pub struct Area { + #[serde(skip_serializing_if = "Option::is_none")] + name: Option, + #[serde(skip_serializing_if = "Option::is_none")] + description: Option, + square_meters: f64, +} + #[derive(Serialize, Deserialize, Default, Debug, Clone, PartialEq)] pub struct Location { #[serde(skip_serializing_if = "Option::is_none")] @@ -15,6 +24,12 @@ pub struct Location { pub lon: f64, #[serde(skip_serializing_if = "Option::is_none")] pub timezone: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub country_code: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub hint: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub areas: Option>, } #[derive(Serialize, Deserialize, Default, Debug, Clone, PartialEq, Eq)] @@ -976,6 +991,15 @@ mod test { }, r#"{"ustream":"http://www.ustream.tv/channel/hackspsps"}"# ); + + test_serialize!( + area, + Area { + square_meters: 120.0, + ..Area::default() + }, + r#"{"square_meters":120.0}"# + ); } mod deserialize {