use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
#[cfg_attr(feature = "specta", derive(specta::Type))]
pub struct CharacterMovementDataSchema {
#[serde(rename = "cooldown")]
pub cooldown: Box<models::CooldownSchema>,
#[serde(rename = "destination")]
pub destination: Box<models::MapSchema>,
#[serde(rename = "path")]
pub path: Vec<Vec<serde_json::Value>>,
#[serde(rename = "character")]
pub character: Box<models::CharacterSchema>,
}
impl CharacterMovementDataSchema {
pub fn new(
cooldown: models::CooldownSchema,
destination: models::MapSchema,
path: Vec<Vec<serde_json::Value>>,
character: models::CharacterSchema,
) -> CharacterMovementDataSchema {
CharacterMovementDataSchema {
cooldown: Box::new(cooldown),
destination: Box::new(destination),
path,
character: Box::new(character),
}
}
}
impl crate::traits::GetCooldown for CharacterMovementDataSchema {
fn get_cooldown(&self) -> &crate::models::CooldownSchema {
&self.cooldown
}
}
impl crate::traits::GetCharacter for CharacterMovementDataSchema {
fn get_character(&self) -> &crate::models::CharacterSchema {
&self.character
}
}