summaryrefslogtreecommitdiff
path: root/src/mongo/idl/idl_parser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/idl/idl_parser.cpp')
-rw-r--r--src/mongo/idl/idl_parser.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/mongo/idl/idl_parser.cpp b/src/mongo/idl/idl_parser.cpp
index fee9678f485..c9450664c71 100644
--- a/src/mongo/idl/idl_parser.cpp
+++ b/src/mongo/idl/idl_parser.cpp
@@ -218,4 +218,29 @@ std::vector<std::string> transformVector(const std::vector<StringData>& input) {
return output;
}
+std::vector<ConstDataRange> transformVector(const std::vector<std::vector<std::uint8_t>>& input) {
+ std::vector<ConstDataRange> output;
+
+ output.reserve(input.size());
+
+ std::transform(begin(input), end(input), std::back_inserter(output), [](auto&& vec) {
+ return makeCDR(vec);
+ });
+
+ return output;
+}
+
+std::vector<std::vector<std::uint8_t>> transformVector(const std::vector<ConstDataRange>& input) {
+ std::vector<std::vector<std::uint8_t>> output;
+
+ output.reserve(input.size());
+
+ std::transform(begin(input), end(input), std::back_inserter(output), [](auto&& cdr) {
+ return std::vector<std::uint8_t>(reinterpret_cast<const uint8_t*>(cdr.data()),
+ reinterpret_cast<const uint8_t*>(cdr.data()) +
+ cdr.length());
+ });
+
+ return output;
+}
} // namespace mongo