module command.remoteundostatusmacro.macrocommand; import command.remoteundostatusmacro.command; class MacroCommand : Command { Command[] commands; this(Command[] commands) { this.commands = commands; } void execute() { foreach (val; commands) { val.execute(); } } void undo() { foreach (val; commands) { val.undo(); } } }