rather fail-fast than hide mistakes (might be e.g. a typo in the source YAML file)
--- a/src/YAMLCommand.h Sat Dec 05 19:42:21 2020 +0100
+++ b/src/YAMLCommand.h Sat Dec 05 19:48:52 2020 +0100
@@ -139,7 +139,7 @@
YAMLEvent_p event = YAMLEvent_p(parser.next());
if (!event) throw RelpipeWriterException(L"Invalid YAML structure: missing event: " + YAMLEvent::findTypeName(expectedEventType));
if (event->getType() != expectedEventType) throw RelpipeWriterException(L"Invalid YAML structure: expected event: " + YAMLEvent::findTypeName(expectedEventType) + L", but got: " + event->getTypeName());
- if (expectedEventType == YAML_SCALAR_EVENT && expectedScalarValue.size() && expectedScalarValue != fetchScalarValue(event)) throw RelpipeWriterException(L"Invalid YAML structure: expected scalar value: " + expectedScalarValue + L", but got " + fetchScalarValue(event));
+ if (expectedEventType == YAML_SCALAR_EVENT && expectedScalarValue.size() && expectedScalarValue != fetchScalarValue(event)) throw RelpipeWriterException(L"Invalid YAML structure: expected scalar value: „" + expectedScalarValue + L"“, but got „" + fetchScalarValue(event) + L"“");
}
string_t consumeScalarEvent() {
@@ -173,7 +173,7 @@
auto value = consumeScalarEvent();
if (key == L"name") name = value;
else if (key == L"type") type = value;
- else; // unsupported metadata, later there might be something useful
+ else throw RelpipeWriterException(L"Invalid YAML structure: expected „name“ or „type“ but got: " + key);
}
attributesMetadata.push_back({name, writer->toTypeId(type)});
}
@@ -188,7 +188,7 @@
} else if (event->getType() == YAML_MAPPING_END_EVENT) {
// empty relation, no records
} else {
- RelpipeWriterException(L"Invalid YAML structure: expected 'record' or MAPPING_END, but got: " + event->getTypeName());
+ RelpipeWriterException(L"Invalid YAML structure: expected „record“ or MAPPING_END, but got: " + event->getTypeName());
}
}