Skip to main content

artifacts/models/
combat_result_schema.rs

1use crate::models;
2use serde::{Deserialize, Serialize};
3
4#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5#[cfg_attr(feature = "specta", derive(specta::Type))]
6pub struct CombatResultSchema {
7    /// Combat result: 'win' or 'loss'.
8    #[serde(rename = "result")]
9    pub result: String,
10    /// Number of turns the combat lasted.
11    #[serde(rename = "turns")]
12    pub turns: i32,
13    /// Combat logs.
14    #[serde(rename = "logs")]
15    pub logs: Vec<String>,
16    /// Character results from combat.
17    #[serde(rename = "character_results")]
18    #[cfg_attr(feature = "specta", specta(type = Vec<specta_util::Unknown>))]
19    pub character_results: Vec<serde_json::Value>,
20}
21
22impl CombatResultSchema {
23    pub fn new(
24        result: String,
25        turns: i32,
26        logs: Vec<String>,
27        character_results: Vec<serde_json::Value>,
28    ) -> CombatResultSchema {
29        CombatResultSchema {
30            result,
31            turns,
32            logs,
33            character_results,
34        }
35    }
36}