using System; using System.Collections.Generic; using UnityEngine; using UnityEngine.UIElements; namespace UnityEditor.U2D.Tooling.Analyzer { [Serializable] class ReportSaveData { [SerializeReference] public TCellData data; public int id; [SerializeReference] public List> children = new(); } [Serializable] class ReportSaveDataRoot { public long lastCaptureTime; [SerializeReference] public List> root = new(); public static List> ConvertToTreeViewItemData(List> toConvert) { List> items = new(); for (int i = 0; i < toConvert.Count; ++i) { var cellData = toConvert[i]; List> children = null; if (cellData.children != null) { children = ConvertToTreeViewItemData(cellData.children); } items.Add(new TreeViewItemData(cellData.id, cellData.data, children)); } return items; } public static List> CovertToSaveFormat(IEnumerable> data) { List> items = new(); foreach (var item in data) { List> children = null; if (item.hasChildren) { children = CovertToSaveFormat(item.children); } var saveItem = new ReportSaveData() { children = children, data = item.data, id = item.id }; items.Add(saveItem); } return items; } } }