Skip to main content

nil_payload/response/
world.rs

1// Copyright (C) Call of Nil contributors
2// SPDX-License-Identifier: AGPL-3.0-only
3
4use derive_more::{Deref, DerefMut, Display, From, Into};
5use nil_core::military::army::personnel::ArmyPersonnel;
6use nil_core::npc::bot::BotId;
7use nil_core::npc::precursor::PrecursorId;
8use nil_core::player::PlayerId;
9use nil_core::ruler::Ruler;
10use nil_core::world::config::{WorldConfig, WorldId};
11use nil_core::world::stats::WorldStats;
12use nil_server_types::world::RemoteWorld;
13use serde::{Deserialize, Serialize};
14
15#[cfg(feature = "axum")]
16use nil_payload_macros::IntoJsonResponse;
17
18#[derive(Clone, Copy, Debug, Deref, DerefMut, Display, From, Into, Deserialize, Serialize)]
19#[cfg_attr(feature = "axum", derive(IntoJsonResponse))]
20#[cfg_attr(feature = "typescript", derive(ts_rs::TS))]
21#[cfg_attr(feature = "typescript", ts(export))]
22pub struct CreateRemoteWorldResponse(pub WorldId);
23
24#[derive(Clone, Copy, Debug, Deref, DerefMut, Display, From, Into, Deserialize, Serialize)]
25#[cfg_attr(feature = "axum", derive(IntoJsonResponse))]
26#[cfg_attr(feature = "typescript", derive(ts_rs::TS))]
27#[cfg_attr(feature = "typescript", ts(export))]
28pub struct GetRemoteWorldLimitResponse(pub u16);
29
30#[derive(Clone, Copy, Debug, Deref, DerefMut, Display, From, Into, Deserialize, Serialize)]
31#[cfg_attr(feature = "axum", derive(IntoJsonResponse))]
32#[cfg_attr(feature = "typescript", derive(ts_rs::TS))]
33#[cfg_attr(feature = "typescript", ts(export))]
34pub struct GetRemoteWorldLimitPerUserResponse(pub u16);
35
36#[derive(Clone, Debug, Deref, DerefMut, From, Into, Deserialize, Serialize)]
37#[cfg_attr(feature = "axum", derive(IntoJsonResponse))]
38#[cfg_attr(feature = "typescript", derive(ts_rs::TS))]
39#[cfg_attr(feature = "typescript", ts(export))]
40pub struct GetRemoteWorldResponse(pub RemoteWorld);
41
42#[derive(Clone, Debug, Deref, DerefMut, From, Into, Deserialize, Serialize)]
43#[cfg_attr(feature = "axum", derive(IntoJsonResponse))]
44#[cfg_attr(feature = "typescript", derive(ts_rs::TS))]
45#[cfg_attr(feature = "typescript", ts(export))]
46pub struct GetRemoteWorldsResponse(pub Vec<RemoteWorld>);
47
48#[derive(Clone, Debug, Deref, DerefMut, From, Into, Deserialize, Serialize)]
49#[cfg_attr(feature = "axum", derive(IntoJsonResponse))]
50#[cfg_attr(feature = "typescript", derive(ts_rs::TS))]
51#[cfg_attr(feature = "typescript", ts(export))]
52pub struct GetWorldBotsResponse(pub Vec<BotId>);
53
54#[derive(Clone, Debug, Deref, DerefMut, From, Into, Deserialize, Serialize)]
55#[cfg_attr(feature = "axum", derive(IntoJsonResponse))]
56#[cfg_attr(feature = "typescript", derive(ts_rs::TS))]
57#[cfg_attr(feature = "typescript", ts(export))]
58pub struct GetWorldConfigResponse(pub WorldConfig);
59
60#[derive(Clone, Debug, Deref, DerefMut, From, Into, Deserialize, Serialize)]
61#[cfg_attr(feature = "axum", derive(IntoJsonResponse))]
62#[cfg_attr(feature = "typescript", derive(ts_rs::TS))]
63#[cfg_attr(feature = "typescript", ts(export))]
64pub struct GetWorldPersonnelResponse(pub ArmyPersonnel);
65
66#[derive(Clone, Debug, Deref, DerefMut, From, Into, Deserialize, Serialize)]
67#[cfg_attr(feature = "axum", derive(IntoJsonResponse))]
68#[cfg_attr(feature = "typescript", derive(ts_rs::TS))]
69#[cfg_attr(feature = "typescript", ts(export))]
70pub struct GetWorldPlayersResponse(pub Vec<PlayerId>);
71
72#[derive(Clone, Debug, Deref, DerefMut, From, Into, Deserialize, Serialize)]
73#[cfg_attr(feature = "axum", derive(IntoJsonResponse))]
74#[cfg_attr(feature = "typescript", derive(ts_rs::TS))]
75#[cfg_attr(feature = "typescript", ts(export))]
76pub struct GetWorldPrecursorsResponse(pub Vec<PrecursorId>);
77
78#[derive(Clone, Debug, Deref, DerefMut, From, Into, Deserialize, Serialize)]
79#[cfg_attr(feature = "axum", derive(IntoJsonResponse))]
80#[cfg_attr(feature = "typescript", derive(ts_rs::TS))]
81#[cfg_attr(feature = "typescript", ts(export))]
82pub struct GetWorldRulersResponse(pub Vec<Ruler>);
83
84#[derive(Clone, Debug, Deref, DerefMut, From, Into, Deserialize, Serialize)]
85#[cfg_attr(feature = "axum", derive(IntoJsonResponse))]
86#[cfg_attr(feature = "typescript", derive(ts_rs::TS))]
87#[cfg_attr(feature = "typescript", ts(export))]
88pub struct GetWorldStatsResponse(pub WorldStats);