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 "rom/rom.h"
#include "cli/service/resources/command_context.h"
#include "core/asar_wrapper.h"
#include "core/project.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
 
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 { \
public: \
std::string GetName() const override { return #name; } \
std::string GetUsage() const override { return usage_str; } \
protected: \
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 178 of file command_handler.h.