正如这个问题所回答的:
请注意,Cap'n Proto 结构中的单个 List 值限制为 2^29-1 个元素
由于单个列表的此限制,我试图将包含超过此数量的项目的列表拆分为列表映射。为此,我使用以下架构:
struct Map64UInt{
entries @0: List(Entry);
struct Entry{
key @0: UInt64;
value @1: List(UInt64);
}
}
我一直在研究 Cap'n Proto 的所有示例,但我找不到一个包含有关如何创建并将元素添加到 Capn'Proto 列表中的示例,然后将此列表添加到 Cap'n Proto 地图中的示例. 例如,考虑以下代码:
void addVecToCapnprotoMap(std::vector<uint64_t> &v){
unsigned int key = 0;
//Here: how do I create a Capn' Proto List of uint64_t
//and add it to a Capn Proto map that follows the schema
//described above?
}