36 for (
const auto &definition : definitions) {
37 if (definition.role == role) {
47 return std::format(
"{{role={}}}",
to_string(definition.
role));
53 if (definitions.empty()) {
56 std::string result =
"[";
58 for (
const auto &definition : definitions) {
77struct std::formatter<
porytiles::RolePinDefinitions> {
78 constexpr auto parse(std::format_parse_context &ctx)
const RolePinDefinition * find_role_pin(const RolePinDefinitions &definitions, FieldRole role)
Finds the role pin definition for a given role, or nullptr when the role is not pinned.
std::vector< RolePinDefinition > RolePinDefinitions
An ordered list of role pin definitions; order is display/declaration order (also CSV column order).
std::ostream & operator<<(std::ostream &os, const PrimaryPairingMode m)
Stream insertion operator for PrimaryPairingMode.
FieldRole
Semantic roles a schema field can carry beyond holding a plain per-metatile value.
std::string to_string(const PrimaryPairingMode m)
Converts a PrimaryPairingMode to its canonical string representation.
A user request to emit a trailing pin column for one schema role in attributes.csv.
bool operator==(const RolePinDefinition &) const =default