inline MetadataNode toMetadata(PointTableRef table) { const PointLayoutPtr layout(table.layout()); MetadataNode root; for (const auto& id : layout->dims()) { MetadataNode dim("dimensions"); dim.add("name", layout->dimName(id)); Dimension::Type::Enum t = layout->dimType(id); dim.add("type", Dimension::toName(Dimension::base(t))); dim.add("size", layout->dimSize(id)); root.addList(dim); } return root; }