using System; namespace UnityEditor.PackageManager.UI { [Serializable] internal class OperationSignal where T: IBaseOperation { public event Action OnOperation = delegate { }; public T Operation { get; set; } public void SetOperation(T operation) { Operation = operation; OnOperation(operation); } public void WhenOperation(Action callback) { if (Operation != null) callback(Operation); OnOperation += callback; } internal void ResetEvents() { OnOperation = delegate { }; } } }