using System.Collections.Generic; namespace Unity.VisualScripting { public class GraphDebugData : IGraphDebugData { protected Dictionary elementsData { get; } = new Dictionary(); protected Dictionary childrenGraphsData { get; } = new Dictionary(); IEnumerable IGraphDebugData.elementsData => elementsData.Values; public GraphDebugData(IGraph definition) { } public IGraphElementDebugData GetOrCreateElementData(IGraphElementWithDebugData element) { if (!elementsData.TryGetValue(element, out var elementDebugData)) { elementDebugData = element.CreateDebugData(); elementsData.Add(element, elementDebugData); } return elementDebugData; } public IGraphDebugData GetOrCreateChildGraphData(IGraphParentElement element) { if (!childrenGraphsData.TryGetValue(element, out var data)) { data = new GraphDebugData(element.childGraph); childrenGraphsData.Add(element, data); } return data; } } }