diff --git a/cpp/utils.h b/cpp/utils.h index db2ba9c..75ba6ca 100644 --- a/cpp/utils.h +++ b/cpp/utils.h @@ -26,3 +26,39 @@ bool ReadCsvMetaFile(const std::string& filename, std::list& meta_list) meta_list.emplace_back(t); }); } + +template +static void RepeatedFieldToVector(const T1& t1, T2& t2) +{ + for (auto& val : t1) { + t2.push_back(val); + } +} + +template +static void RepeatedFieldToSet(const T1& t1, T2& t2) +{ + for (auto& val : t1) { + t2.insert(val); + } +} + +template +static void VectorToRepeatedField(const T1& t1, T2& t2) +{ + for (auto& val : t1) { + *t2.Add() = val; + } +} + +template +static void SetToRepeatedField(const T1& t1, T2& t2) +{ + for (auto& val : t1) { + *t2.Add() = val; + } +}