Files
rerun-io--rerun/docs/snippets/snippet_dispatcher.cpp.in
2026-07-13 13:05:14 +08:00

41 lines
1.1 KiB
Plaintext

// Generated by CMake from snippet_dispatcher.cpp.in - DO NOT EDIT
#include <cstdio>
#include <cstring>
@FORWARD_DECLARATIONS@
struct SnippetEntry {
const char* name;
int (*func)(int argc, char** argv);
};
static const SnippetEntry snippets[] = {
@DISPATCH_ENTRIES@};
static const char* snippet_names[] = {
@SNIPPET_LIST_LITERAL@};
int main(int argc, char* argv[]) {
if (argc < 2) {
fprintf(stderr, "Usage: %s <snippet_name> [args...]\n\n", argv[0]);
fprintf(stderr, "Available snippets:\n");
for (const auto& name : snippet_names) {
fprintf(stderr, " %s\n", name);
}
return 1;
}
for (const auto& entry : snippets) {
if (strcmp(argv[1], entry.name) == 0) {
// Shift argv so the snippet sees its name as argv[0].
return entry.func(argc - 1, argv + 1);
}
}
fprintf(stderr, "Unknown snippet: '%s'\n\n", argv[1]);
fprintf(stderr, "Available snippets:\n");
for (const auto& name : snippet_names) {
fprintf(stderr, " %s\n", name);
}
return 1;
}