using EcsRx.Components; using EcsRx.Groups.Observable; namespace EcsRx.Plugins.Batching.Accessors { public interface IBatchManager { IBatchAccessor GetAccessorFor(IObservableGroup observableGroup) where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent; IReferenceBatchAccessor GetReferenceAccessorFor(IObservableGroup observableGroup) where T1 : class, IComponent where T2 : class, IComponent; IBatchAccessor GetAccessorFor(IObservableGroup observableGroup) where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent where T3 : unmanaged, IComponent; IReferenceBatchAccessor GetReferenceAccessorFor(IObservableGroup observableGroup) where T1 : class, IComponent where T2 : class, IComponent where T3 : class, IComponent; IBatchAccessor GetAccessorFor(IObservableGroup observableGroup) where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent where T3 : unmanaged, IComponent where T4 : unmanaged, IComponent; IReferenceBatchAccessor GetReferenceAccessorFor(IObservableGroup observableGroup) where T1 : class, IComponent where T2 : class, IComponent where T3 : class, IComponent where T4 : class, IComponent; IBatchAccessor GetAccessorFor(IObservableGroup observableGroup) where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent where T3 : unmanaged, IComponent where T4 : unmanaged, IComponent where T5 : unmanaged, IComponent; IReferenceBatchAccessor GetReferenceAccessorFor(IObservableGroup observableGroup) where T1 : class, IComponent where T2 : class, IComponent where T3 : class, IComponent where T4 : class, IComponent where T5 : class, IComponent; IBatchAccessor GetAccessorFor(IObservableGroup observableGroup) where T1 : unmanaged, IComponent where T2 : unmanaged, IComponent where T3 : unmanaged, IComponent where T4 : unmanaged, IComponent where T5 : unmanaged, IComponent where T6 : unmanaged, IComponent; IReferenceBatchAccessor GetReferenceAccessorFor(IObservableGroup observableGroup) where T1 : class, IComponent where T2 : class, IComponent where T3 : class, IComponent where T4 : class, IComponent where T5 : class, IComponent where T6 : class, IComponent; } }