@@ 0,0 1,28 @@
+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)
+ }
+}<
\ No newline at end of file