1#ifndef YAZE_SRC_CLI_SERVICE_RESOURCES_COMMAND_CONTEXT_H_
2#define YAZE_SRC_CLI_SERVICE_RESOURCES_COMMAND_CONTEXT_H_
8#include "absl/status/status.h"
9#include "absl/status/statusor.h"
49 absl::StatusOr<Rom*>
GetRom();
85 std::optional<std::string>
GetString(
const std::string& name)
const;
90 absl::StatusOr<int>
GetInt(
const std::string& name)
const;
95 absl::StatusOr<int>
GetHex(
const std::string& name)
const;
100 bool HasFlag(
const std::string& name)
const;
110 absl::Status
RequireArgs(
const std::vector<std::string>& required)
const;
115 std::optional<std::string>
FindArgValue(
const std::string& name)
const;
131 static absl::StatusOr<OutputFormatter>
FromString(
const std::string& format);
146 void AddField(
const std::string& key,
const std::string& value);
147 void AddField(
const std::string& key,
int value);
148 void AddField(
const std::string& key, uint64_t value);
149 void AddField(
const std::string& key,
bool value);
154 void AddHexField(
const std::string& key, uint64_t value,
int width = 2);
200 std::string
EscapeJson(
const std::string& str)
const;
The Rom class is used to load, save, and modify Rom data. This is a generic SNES ROM container and do...
Utility for parsing common CLI argument patterns.
std::optional< std::string > FindArgValue(const std::string &name) const
std::vector< std::string > args_
ArgumentParser(const std::vector< std::string > &args)
std::vector< std::string > GetPositional() const
Get all remaining positional arguments.
std::optional< std::string > GetString(const std::string &name) const
Parse a named argument (e.g., –format=json or –format json)
bool HasFlag(const std::string &name) const
Check if a flag is present.
absl::Status RequireArgs(const std::vector< std::string > &required) const
Validate that required arguments are present.
absl::StatusOr< int > GetHex(const std::string &name) const
Parse a hex integer argument.
absl::StatusOr< int > GetInt(const std::string &name) const
Parse an integer argument (supports hex with 0x prefix)
Encapsulates common context for CLI command execution.
const std::string & GetFormat() const
Get the output format ("json" or "text")
bool IsVerbose() const
Check if verbose mode is enabled.
absl::StatusOr< Rom * > GetRom()
Get the ROM instance (loads if not already loaded)
absl::Status EnsureLabelsLoaded(Rom *rom)
Ensure resource labels are loaded.
~CommandContext()=default
absl::Status Initialize()
Initialize the context and load ROM if needed.
CommandContext(const Config &config)
Configuration for command context.
std::optional< std::string > rom_path
Rom * external_rom_context