using System; using System.Collections.Generic; using System.Collections.ObjectModel; namespace MultiWheelC.TrajectoryPlanning.EMPlanner; public sealed class EmPlanningDiagnostics { private readonly List _debugSinkFailures = new List(); public IReadOnlyList DebugSinkFailures { get { return new ReadOnlyCollection(new List(_debugSinkFailures)); } } public void WriteDebug(EmPlannerDebugOptions options, string message) { if (options == null || options.Sink == null) return; try { options.Sink.Write(message ?? string.Empty); } catch (Exception exception) { _debugSinkFailures.Add(exception.GetType().FullName + ": " + exception.Message); } } }