diff options
Diffstat (limited to 'nihil.cli/registry.ccm')
| -rw-r--r-- | nihil.cli/registry.ccm | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/nihil.cli/registry.ccm b/nihil.cli/registry.ccm index 5e31195..1b104b0 100644 --- a/nihil.cli/registry.ccm +++ b/nihil.cli/registry.ccm @@ -31,4 +31,18 @@ auto register_command(command *cmd) noexcept -> void get_registry().emplace_back(cmd, null_deleter); } +// Unregister a command. This is not very efficient, but it shouldn't usually be called +// except during testing. +auto unregister_command(command *cmd) noexcept -> void +{ + auto ®istry = get_registry(); + + auto it = std::ranges::find_if(registry, [=] (auto c) -> bool { + return c.get() == cmd; + }); + + if (it != std::ranges::end(registry)) + registry.erase(it); +} + } // namespace nihil |
