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