using System; using System.Collections.Generic; using EcsRx.Events.Collections; namespace EcsRx.Plugins.Computeds.Collections { /// /// Represents a computed collection of elements /// /// The data to contain public interface IComputedCollection : IComputed>, IEnumerable { /// /// Get an element by its index /// /// /// In some implementations this may be its id not a sequential index /// /// index/id of the element T this[int index] {get;} /// /// How many elements are within the collection /// int Count { get; } /// /// Fired when an element is added /// IObservable> OnAdded { get; } /// /// Fired when an element is removed /// IObservable> OnRemoved { get; } /// /// Fired when an element is updated /// IObservable> OnUpdated { get; } } }