@@ -7,6 +7,15 @@ use crate::sensors::Sensors;
7
7
8
8
type Extensions = BTreeMap < String , Value > ;
9
9
10
+ #[ derive( Serialize , Deserialize , Default , Debug , Clone , PartialEq ) ]
11
+ pub struct Area {
12
+ #[ serde( skip_serializing_if = "Option::is_none" ) ]
13
+ name : Option < String > ,
14
+ #[ serde( skip_serializing_if = "Option::is_none" ) ]
15
+ description : Option < String > ,
16
+ square_meters : f64 ,
17
+ }
18
+
10
19
#[ derive( Serialize , Deserialize , Default , Debug , Clone , PartialEq ) ]
11
20
pub struct Location {
12
21
#[ serde( skip_serializing_if = "Option::is_none" ) ]
@@ -15,6 +24,12 @@ pub struct Location {
15
24
pub lon : f64 ,
16
25
#[ serde( skip_serializing_if = "Option::is_none" ) ]
17
26
pub timezone : Option < String > ,
27
+ #[ serde( skip_serializing_if = "Option::is_none" ) ]
28
+ pub country_code : Option < String > ,
29
+ #[ serde( skip_serializing_if = "Option::is_none" ) ]
30
+ pub hint : Option < String > ,
31
+ #[ serde( skip_serializing_if = "Option::is_none" ) ]
32
+ pub areas : Option < Vec < Area > > ,
18
33
}
19
34
20
35
#[ derive( Serialize , Deserialize , Default , Debug , Clone , PartialEq , Eq ) ]
@@ -225,6 +240,12 @@ pub enum ApiVersion {
225
240
V14 ,
226
241
}
227
242
243
+ #[ derive( Serialize , Deserialize , Debug , Clone , PartialEq , Eq ) ]
244
+ pub struct LinkedSpace {
245
+ endpoint : String ,
246
+ website : String ,
247
+ }
248
+
228
249
/// The main SpaceAPI status object.
229
250
#[ derive( Serialize , Deserialize , Default , Debug , Clone , PartialEq ) ]
230
251
pub struct Status {
@@ -260,6 +281,8 @@ pub struct Status {
260
281
pub links : Option < Vec < Link > > ,
261
282
#[ serde( skip_serializing_if = "Option::is_none" ) ]
262
283
pub membership_plans : Option < Vec < MembershipPlan > > ,
284
+ #[ serde( skip_serializing_if = "Option::is_none" ) ]
285
+ pub linked_spaces : Option < Vec < LinkedSpace > > ,
263
286
264
287
// SpaceAPI internal usage
265
288
#[ serde( skip_serializing_if = "Option::is_none" ) ]
@@ -968,6 +991,15 @@ mod test {
968
991
} ,
969
992
r#"{"ustream":"http://www.ustream.tv/channel/hackspsps"}"#
970
993
) ;
994
+
995
+ test_serialize ! (
996
+ area,
997
+ Area {
998
+ square_meters: 120.0 ,
999
+ ..Area :: default ( )
1000
+ } ,
1001
+ r#"{"square_meters":120.0}"#
1002
+ ) ;
971
1003
}
972
1004
973
1005
mod deserialize {
0 commit comments