| 154 | /////////////////////////////////////////////////////////////////////////////////// |
| 155 | |
| 156 | Map cursorTreeToMap(const CursorTreeNodePtr & ptr) |
| 157 | { |
| 158 | chassert(ptr != nullptr); |
| 159 | std::map<String, Int64> collapsed_tree = collapseTree(ptr.get()); |
| 160 | Map result; |
| 161 | |
| 162 | for (const auto & [k, v] : collapsed_tree) |
| 163 | result.push_back(Tuple{k, v}); |
| 164 | |
| 165 | return result; |
| 166 | } |
| 167 | |
| 168 | CursorTreeNodePtr buildCursorTree(const Map & collapsed_tree) |
| 169 | { |