homm5_types/common/
mod.rs

1use serde::{Serialize, Deserialize};
2
3/// Common types suitable for any others.
4
5/// Position of object on the map
6#[derive(Serialize, Deserialize, Debug, Clone)]
7pub struct Pos {
8    pub x: i32,
9    pub y: i32,
10    pub z: i32,
11}
12
13/// Reference to file(<Shared href="some_path"/>)
14#[derive(Debug, Deserialize, Serialize, Clone)]
15pub struct FileRef {
16    #[serde(rename = "@href")]
17    pub href: Option<String>
18}
19
20#[derive(Debug, Serialize, Deserialize, Clone)]
21pub struct Action {
22    #[serde(rename = "FunctionName")]
23    pub function_name: String
24}
25
26#[derive(Debug, Serialize, Deserialize, Clone)]
27pub struct Trigger {
28    #[serde(rename = "Action")]
29    pub action: Action
30}
31
32#[derive(Debug, Deserialize, Serialize, Clone)]
33pub struct ArmySlot {
34    #[serde(rename = "Creature")]
35    pub creature: String,
36    #[serde(rename = "Count")]
37    pub count: u16
38}
39
40#[derive(Debug, Deserialize, Serialize, Clone)]
41pub struct SkillMastery {
42    #[serde(rename = "Mastery")]
43    pub mastery: String,
44    #[serde(rename = "SkillID")]
45    pub skill_id: String
46}