diff options
| author | Lexi Winter <lexi@le-fay.org> | 2025-07-03 19:46:01 +0100 |
|---|---|---|
| committer | Lexi Winter <lexi@le-fay.org> | 2025-07-03 19:46:01 +0100 |
| commit | e9609dfea5a8210f9e1a23c0d80f53df7664e71a (patch) | |
| tree | c07fe2e0a47ee8d5a93d135752e4d0f2dba7424e /nihil.cli/registry.ccm | |
| parent | c5a27de4bc520a9ac3538e8960097a8a65428182 (diff) | |
| download | nihil-e9609dfea5a8210f9e1a23c0d80f53df7664e71a.tar.gz nihil-e9609dfea5a8210f9e1a23c0d80f53df7664e71a.tar.bz2 | |
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 |
