import Foundation public struct Cursor: Sendable { let node: Child let utf16Offset: Int let children: [Cursor] init(node: Child, utf16Offset: Int) { self.node = node self.utf16Offset = utf16Offset var children: [Cursor] = [] var utf16Offset = utf16Offset for childNode in node.children { children.append(Self(node: childNode, utf16Offset: utf16Offset)) utf16Offset += childNode.utf16Length } self.children = children } }