#if UNITY_NATIVE using System; using Svelto.DataStructures; namespace Svelto.ECS { public struct NativeEGIDMultiMapper:IDisposable where T : unmanaged, IEntityComponent { SveltoDictionary>, NativeStrategy, NativeStrategy>, NativeStrategy>, NativeStrategy>, NativeStrategy, NativeStrategy>>, NativeStrategy> _dic; public NativeEGIDMultiMapper (SveltoDictionary>, NativeStrategy, NativeStrategy>, NativeStrategy>, NativeStrategy>, NativeStrategy, NativeStrategy>>, NativeStrategy> dictionary) { _dic = dictionary; } public int count => (int) _dic.count; public void Dispose() { _dic.Dispose(); } public ref T Entity(EGID entity) { ref var sveltoDictionary = ref _dic.GetValueByRef(entity.groupID); return ref sveltoDictionary.GetValueByRef(entity.entityID); } public bool Exists(EGID entity) { return _dic.TryFindIndex(entity.groupID, out var index) && _dic.GetDirectValueByRef(index).ContainsKey(entity.entityID); } } } #endif