[commands] Add FinallyDo and HandleInterrupt decorators (#4412)

This commit is contained in:
Starlight220
2022-10-11 19:53:27 +03:00
committed by GitHub
parent 1497665f96
commit 89a3d00297
7 changed files with 251 additions and 0 deletions

View File

@@ -108,6 +108,16 @@ CommandPtr Command::Unless(std::function<bool()> condition) && {
.Unless(std::move(condition));
}
CommandPtr Command::FinallyDo(std::function<void(bool)> end) && {
return CommandPtr(std::move(*this).TransferOwnership())
.FinallyDo(std::move(end));
}
CommandPtr Command::HandleInterrupt(std::function<void(void)> handler) && {
return CommandPtr(std::move(*this).TransferOwnership())
.HandleInterrupt(std::move(handler));
}
void Command::Schedule() {
CommandScheduler::GetInstance().Schedule(this);
}