1#ifndef YAZE_SRC_CLI_SERVICE_RESOURCES_COMMAND_HANDLER_H_
2#define YAZE_SRC_CLI_SERVICE_RESOURCES_COMMAND_HANDLER_H_
7#include "absl/status/status.h"
70 absl::Status
Run(
const std::vector<std::string>& args,
Rom* rom_context);
146#define DEFINE_COMMAND_HANDLER(name, usage_str, validate_body, execute_body) \
147 class name##CommandHandler : public CommandHandler { \
149 std::string GetUsage() const override { return usage_str; } \
150 absl::Status ValidateArgs(const ArgumentParser& parser) override \
152 absl::Status Execute(Rom* rom, const ArgumentParser& parser, \
153 OutputFormatter& formatter) override \
The Rom class is used to load, save, and modify Rom data.
Utility for parsing common CLI argument patterns.
Base class for CLI command handlers.
virtual bool RequiresLabels() const
Check if the command requires ROM labels.
absl::Status Run(const std::vector< std::string > &args, Rom *rom_context)
Execute the command.
virtual std::string GetUsage() const =0
Get the command usage string.
virtual std::string GetName() const =0
Get the command name.
virtual absl::Status Execute(Rom *rom, const ArgumentParser &parser, OutputFormatter &formatter)=0
Execute the command business logic.
virtual std::string GetOutputTitle() const
Get the output title for formatting.
virtual std::string GetDefaultFormat() const
Get the default output format ("json" or "text")
virtual ~CommandHandler()=default
virtual Descriptor Describe() const
Provide metadata for TUI/help summaries.
virtual absl::Status ValidateArgs(const ArgumentParser &parser)=0
Validate command arguments.
Main namespace for the application.
std::string todo_reference
std::vector< DescriptorEntry > entries
std::string todo_reference