yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
command_handler.h File Reference
#include <string>
#include <vector>
#include "absl/status/status.h"
#include "app/rom.h"
#include "cli/service/resources/command_context.h"

Go to the source code of this file.

Classes

class  yaze::cli::resources::CommandHandler
 Base class for CLI command handlers. More...
 
struct  yaze::cli::resources::CommandHandler::DescriptorEntry
 
struct  yaze::cli::resources::CommandHandler::Descriptor
 

Namespaces

namespace  yaze
 Main namespace for the application.
 
namespace  yaze::cli
 Namespace for the command line interface.
 
namespace  yaze::cli::resources
 

Macros

#define DEFINE_COMMAND_HANDLER(name, usage_str, validate_body, execute_body)
 Helper macro for creating simple command handlers.
 

Macro Definition Documentation

◆ DEFINE_COMMAND_HANDLER

#define DEFINE_COMMAND_HANDLER (   name,
  usage_str,
  validate_body,
  execute_body 
)
Value:
class name##CommandHandler : public CommandHandler { \
protected: \
std::string GetUsage() const override { return usage_str; } \
absl::Status ValidateArgs(const ArgumentParser& parser) override \
validate_body \
absl::Status Execute(Rom* rom, const ArgumentParser& parser, \
OutputFormatter& formatter) override \
execute_body \
};

Helper macro for creating simple command handlers.

Usage:

"agent resource-list --type <type> [--format <table|json>]",
{ return parser.RequireArgs({"type"}); },
{
auto type = parser.GetString("type").value();
ResourceContextBuilder builder(rom);
auto labels = builder.GetLabels(type);
for (const auto& [key, value] : *labels) {
formatter.AddField(key, value);
}
return absl::OkStatus();
}
)
#define DEFINE_COMMAND_HANDLER(name, usage_str, validate_body, execute_body)
Helper macro for creating simple command handlers.

Definition at line 146 of file command_handler.h.