use crate::models::parameters::CommandRequest; use crate::models::player::UserID; use crate::models::Portal; use serde::{Deserialize, Serialize}; #[derive(Debug, Serialize, Deserialize, Clone)] pub struct SetPortalParams { pub token: String, pub user_id: UserID, pub loc_name: String, pub portal: Portal, } impl SetPortalParams { pub fn new(loc_name: String, portal: Portal) -> Self { Self { token: Default::default(), user_id: Default::default(), loc_name, portal, } } } impl CommandRequest for SetPortalParams { fn token(&self) -> String { self.token.clone() } fn user_id(&self) -> Option { Some(self.user_id.clone()) } fn set_user_id(&mut self, user_id: UserID) { self.user_id = user_id; } fn set_token(&mut self, token: String) { self.token = token; } }