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();
84 std::optional<std::string>
GetString(
const std::string& name)
const;
89 absl::StatusOr<int>
GetInt(
const std::string& name)
const;
94 absl::StatusOr<int>
GetHex(
const std::string& name)
const;
99 bool HasFlag(
const std::string& name)
const;
109 absl::Status
RequireArgs(
const std::vector<std::string>& required)
const;
114 std::optional<std::string>
FindArgValue(
const std::string& name)
const;
133 static absl::StatusOr<OutputFormatter>
FromString(
const std::string& format);
148 void AddField(
const std::string& key,
const std::string& value);
149 void AddField(
const std::string& key,
int value);
150 void AddField(
const std::string& key, uint64_t value);
151 void AddField(
const std::string& key,
bool value);
156 void AddHexField(
const std::string& key, uint64_t value,
int width = 2);
202 std::string
EscapeJson(
const std::string& str)
const;
The Rom class is used to load, save, and modify Rom data.
Utility for parsing common CLI argument patterns.
std::optional< std::string > FindArgValue(const std::string &name) 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.
Main namespace for the application.
Configuration for command context.
std::optional< std::string > rom_path
Rom * external_rom_context