using System; using System.Collections.Generic; namespace StardewModdingAPI.Framework.StateTracking.FieldWatchers { /// A collection watcher which never changes. /// The value type within the collection. internal class ImmutableCollectionWatcher : BaseDisposableWatcher, ICollectionWatcher { /********* ** Accessors *********/ /// A singleton collection watcher instance. public static ImmutableCollectionWatcher Instance { get; } = new ImmutableCollectionWatcher(); /// Whether the collection changed since the last reset. public bool IsChanged { get; } = false; /// The values added since the last reset. public IEnumerable Added { get; } = Array.Empty(); /// The values removed since the last reset. public IEnumerable Removed { get; } = Array.Empty(); /********* ** Public methods *********/ /// Update the current value if needed. public void Update() { } /// Set the current value as the baseline. public void Reset() { } /// Stop watching the field and release all references. public override void Dispose() { } } }