wowlab_types/types/data/
shared.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
4#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
5#[serde(tag = "source")]
6pub enum KnowledgeSource {
8 #[serde(rename = "talent")]
9 Talent {
10 #[serde(rename = "traitDefinitionId")]
11 trait_definition_id: i32,
12 },
13 #[serde(rename = "spec")]
14 Spec {
15 #[serde(rename = "specId")]
16 spec_id: i32,
17 },
18 #[serde(rename = "class")]
19 Class {
20 #[serde(rename = "classId")]
21 class_id: i32,
22 },
23 #[serde(rename = "unknown")]
24 #[default]
25 Unknown,
26}
27
28#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
29#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
30#[serde(rename_all = "snake_case")]
31pub enum PeriodicType {
33 Damage,
34 Heal,
35 Leech,
36 Energize,
37 TriggerSpell,
38}
39
40#[derive(Clone, Copy, Debug, Default, Deserialize, Eq, PartialEq, Serialize)]
41#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
42#[serde(rename_all = "snake_case")]
43pub enum RefreshBehavior {
45 Pandemic,
46 Extend,
47 Tick,
49 Clip,
51 None,
53 #[default]
54 Duration,
55}
56
57#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
58#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
59pub struct RppmMod {
60 pub mod_type: i32,
61 pub param: i32,
62 pub coeff: f32,
63}