diff options
author | Mark Benvenuto <mark.benvenuto@mongodb.com> | 2017-04-19 10:08:26 -0400 |
---|---|---|
committer | Mark Benvenuto <mark.benvenuto@mongodb.com> | 2017-04-19 15:30:27 -0400 |
commit | ebd361aae87504474e7db011f08da7aeb0923167 (patch) | |
tree | 3b07cb1415b5397dc1c5285622a300efc47c4dea /src/mongo/idl/idl_parser.cpp | |
parent | 72f19039beebcb3e087dc1efbe6fac31526d2fd0 (diff) | |
download | mongo-ebd361aae87504474e7db011f08da7aeb0923167.tar.gz |
SERVER-28514 Add Array support for IDL
Diffstat (limited to 'src/mongo/idl/idl_parser.cpp')
-rw-r--r-- | src/mongo/idl/idl_parser.cpp | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/mongo/idl/idl_parser.cpp b/src/mongo/idl/idl_parser.cpp index 5e1edd7af4c..fee9678f485 100644 --- a/src/mongo/idl/idl_parser.cpp +++ b/src/mongo/idl/idl_parser.cpp @@ -184,4 +184,38 @@ void IDLParserErrorContext::throwUnknownField(StringData fieldName) const { std::string path = getElementPath(fieldName); uasserted(40415, str::stream() << "BSON field '" << path << "' is an unknown field."); } + +void IDLParserErrorContext::throwBadArrayFieldNumberValue(StringData value) const { + std::string path = getElementPath(StringData()); + uasserted(40422, + str::stream() << "BSON array field '" << path << "' has an invalid value '" << value + << "' for an array field name."); +} +void IDLParserErrorContext::throwBadArrayFieldNumberSequence(std::uint32_t actualValue, + std::uint32_t expectedValue) const { + std::string path = getElementPath(StringData()); + uasserted(40423, + str::stream() << "BSON array field '" << path << "' has a non-sequential value '" + << actualValue + << "' for an array field name, expected value '" + << expectedValue + << "'."); +} + +std::vector<StringData> transformVector(const std::vector<std::string>& input) { + return std::vector<StringData>(begin(input), end(input)); +} + +std::vector<std::string> transformVector(const std::vector<StringData>& input) { + std::vector<std::string> output; + + output.reserve(input.size()); + + std::transform(begin(input), end(input), std::back_inserter(output), [](auto&& str) { + return str.toString(); + }); + + return output; +} + } // namespace mongo |