using System; using System.Collections.Generic; namespace EcsRx.Extensions { public static class IDisposableExtensions { public static void DisposeAll(this IEnumerable disposables) { foreach(var disposable in disposables) { disposable.Dispose(); } } public static void DisposeAll(this IDictionary disposables) { foreach(var disposable in disposables.Values) { disposable.Dispose(); } } public static IDisposable AddTo(this IDisposable currentDisposable, ICollection disposables) { disposables.Add(currentDisposable); return currentDisposable; } public static IDisposable AddTo(this IDisposable currentDisposable, IDictionary disposables, T key) { disposables.Add(key, currentDisposable); return currentDisposable; } } }