| 129 | |
| 130 | template <typename T> |
| 131 | std::vector<T> FlattenVectors(const std::vector<std::vector<T>>& vecs) { |
| 132 | std::size_t sum = 0; |
| 133 | for (const auto& vec : vecs) { |
| 134 | sum += vec.size(); |
| 135 | } |
| 136 | std::vector<T> out; |
| 137 | out.reserve(sum); |
| 138 | for (const auto& vec : vecs) { |
| 139 | out.insert(out.end(), vec.begin(), vec.end()); |
| 140 | } |
| 141 | return out; |
| 142 | } |
| 143 | |
| 144 | template <typename T> |
| 145 | Result<std::vector<T>> UnwrapOrRaise(std::vector<Result<T>>&& results) { |