我已经通读了pycapnp 快速入门和文档,但我没有看到关于如何读取和写入基本列表对象(如浮点列表)的提及。
特别是,我知道如果我在 capnp 文件中编写自定义类型,那么我可以使用类似的东西读取该类型的对象
addressbook_capnp.Person.from_bytes(encoded_message)
我想知道的是读取这样的浮点数列表的语法。我想它看起来像
capnp.List.Float64.from_bytes(encoded_message)
但我根本找不到正确的语法。此外,由于 Capn Proto 不会从 .capnp 文件中导出别名,因此我不能只在那里定义一个浮点列表(或者看起来如此)。
有人可以告诉我在 pycapnp 中读取、写入和创建基本对象列表的正确语法吗?
编辑:
例如,在 C++ 中,我可以像这样创建一个列表对象(没有自定义类型):
::capnp::MallocMessageBuilder message;
auto capnp_point_cloud = message.initRoot<::capnp::List<Val>>(num_axes);
for (size_t i = 0; i < num_axes; ++i) {
capnp_point_cloud.set(i, array[i]);
}