screeps_rust_api/
model.rs1use std::collections::HashMap;
2
3use serde::{Deserialize, Serialize};
4
5use crate::{
6 EncodedRoomTerrain, MyInfo, RoomStatus, RoomTerrain, ShardInfo, UserInfo,
7 types::{RoomObject, UserWithId},
8};
9
10#[derive(Serialize, Deserialize, Debug)]
12pub struct BaseData {
13 pub ok: Option<i32>,
15 pub error: Option<String>,
17}
18
19#[derive(Serialize, Deserialize, Debug)]
21pub struct TokenData {
22 #[serde(flatten)]
23 pub base_data: BaseData,
24 pub token: Option<String>,
26}
27
28#[derive(Serialize, Deserialize, Debug)]
30pub struct MyInfoData {
31 #[serde(flatten)]
32 pub base_data: BaseData,
33 #[serde(flatten)]
34 pub user: Option<MyInfo>,
35}
36
37#[derive(Serialize, Deserialize, Debug)]
39pub struct UserInfoData {
40 #[serde(flatten)]
41 pub base_data: BaseData,
42 pub user: Option<UserInfo>,
43}
44
45#[derive(Serialize, Deserialize, Debug)]
47pub struct MyNameData {
48 #[serde(flatten)]
49 pub base_data: BaseData,
50 pub username: Option<String>,
51}
52
53#[derive(Serialize, Deserialize, Debug)]
55pub struct UserAllRoomsData {
56 #[serde(flatten)]
57 pub base_data: BaseData,
58 pub shards: Option<HashMap<String, Vec<String>>>,
60 pub reservations: Option<HashMap<String, Vec<String>>>,
62}
63
64#[derive(Serialize, Deserialize, Debug)]
66pub struct RoomObjectsData {
67 #[serde(flatten)]
68 pub base_data: BaseData,
69 pub objects: Option<Vec<RoomObject>>,
70 pub users: Option<HashMap<String, UserWithId>>,
71}
72
73#[derive(Serialize, Deserialize, Debug)]
75pub struct RoomTerrainData {
76 #[serde(flatten)]
77 pub base_data: BaseData,
78 pub terrain: Option<Vec<RoomTerrain>>,
79}
80
81#[derive(Serialize, Deserialize, Debug)]
83pub struct EncodedRoomTerrainData {
84 #[serde(flatten)]
85 pub base_data: BaseData,
86 pub terrain: Option<Vec<EncodedRoomTerrain>>,
87}
88
89#[derive(Serialize, Deserialize, Debug)]
91pub struct RoomStatusData {
92 #[serde(flatten)]
93 pub base_data: BaseData,
94 pub rooms: Option<RoomStatus>,
95}
96
97#[derive(Serialize, Deserialize, Debug)]
99pub struct AllShardData {
100 #[serde(flatten)]
101 pub base_data: BaseData,
102 pub shards: Option<Vec<ShardInfo>>,
103}
104
105#[derive(Serialize, Deserialize, Debug)]
107pub struct ShardTimeData {
108 #[serde(flatten)]
109 pub base_data: BaseData,
110 pub time: Option<u64>,
111}