File tree Expand file tree Collapse file tree 2 files changed +26
-0
lines changed Expand file tree Collapse file tree 2 files changed +26
-0
lines changed Original file line number Diff line number Diff line change @@ -184,5 +184,21 @@ bool from_dm_from_extra(const ProtoStruct& extra) {
184184 return false ;
185185}
186186
187+ template <typename Src, typename Dst>
188+ void vecToRepeatedPtr (const std::vector<Src>& vec, google::protobuf::RepeatedPtrField<Dst>& dest) {
189+ dest->Reserve (vec.size ());
190+ for (auto & x : vec) {
191+ *dest.Add () = x;
192+ }
193+ }
194+
195+ template <typename Src, typename Dst>
196+ void repeatedPtrToVec (const google::protobuf::RepeatedPtrField<Src>& src, std::vector<Dst>& vec) {
197+ vec.reserve (src.size ());
198+ for (auto & x : src) {
199+ vec.push_back (x);
200+ }
201+ }
202+
187203} // namespace sdk
188204} // namespace viam
Original file line number Diff line number Diff line change @@ -99,5 +99,15 @@ void set_logger_severity_from_args(int argc, char** argv);
9999// / @param extra The extra ProtoStruct.
100100bool from_dm_from_extra (const ProtoStruct& extra);
101101
102+ // / @brief Copies elements from a protobuf repeated pointer array into a std::vector. Src type
103+ // / must be implicitly convertible to Dst (probably via operator on Src).
104+ template <typename Src, typename Dst>
105+ void vecToRepeatedPtr (const std::vector<Src>& vec, google::protobuf::RepeatedPtrField<Dst>& dest);
106+
107+ // / @brief Copies elements from a std::vector into a protobuf repeated pointer array. Src type
108+ // / must be implicitly convertible to Dst (probably via constructor on Dst).
109+ template <typename Src, typename Dst>
110+ void repeatedPtrToVec (const google::protobuf::RepeatedPtrField<Src>& src, std::vector<Dst>& vec);
111+
102112} // namespace sdk
103113} // namespace viam
You can’t perform that action at this time.
0 commit comments