use crate::commands::command::Command; use crate::map::Map; pub struct CommandData<'d, 'a> { command: &'d Command<'d>, map: &'d mut Map<'a>, } impl<'d, 'a> CommandData<'d, 'a> { pub fn new(command: &'d Command<'d>, map: &'d mut Map<'a>) -> Self { CommandData { command, map } } pub fn command(self) -> &'d Command<'d> { self.command } pub fn map(self) -> &'d mut Map<'a> { self.map } pub fn deconstruct(self) -> (&'d Command<'d>, &'d mut Map<'a>) { (self.command, self.map) } }