Add HelpTopic inventory type for non-command help entries#1
Merged
Conversation
Introduces a compile-time registry for free-form help topics that are
not tied to a command handler — channel modes, user modes, or any other
concept a user might query with HELP <topic>.
Topics are registered at the call site via inventory::submit!:
inventory::submit!(HelpTopic {
topic: "CMODE_SECRET",
lines: &[
"CMODE_SECRET (+s)",
"",
"Marks the channel as secret.",
],
});
CommandDispatcher gains two new methods:
- get_help_topic(topic) -> Option<&'static [&'static str]>
- iter_help_topics() -> impl Iterator<Item = &'static HelpTopic>
ClientServer forwards both so command handlers can call them directly.
A HELP handler (see Libera-Chat#129) should query the command registry for
command docs and fall back to get_help_topic() for concept entries,
giving full coverage with no runtime I/O.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Local branch for testing the
HelpTopicregistry on top of all existing fork changes (hostname cloaking, LIST command, etc.).Mirrors upstream PR Libera-Chat#189.
What this adds
A compile-time registry for free-form help topics not tied to any command handler — channel modes, user modes, or any concept a user might query with
HELP <topic>.Register a topic anywhere with
inventory::submit!:New API on
CommandDispatcher(and forwarded onClientServer):get_help_topic(topic)— case-insensitive lookupiter_help_topics()— enumerate all topicsHow a HELP handler should use both registries