public void Deconstruct(out EventQueue baseQueue, out EventQueue <T1> componentQueue, out EventQueue <T1, T2> bufferQueue) { baseQueue = new EventQueue(TypeManager.GetTypeIndex <T1>(), UnsafeUtility.SizeOf <T1>(), TypeManager.GetTypeIndex <T2>(), UnsafeUtility.SizeOf <T2>(), _allocator); componentQueue = baseQueue.Cast <EventQueue <T1> >(); bufferQueue = baseQueue.Cast <EventQueue <T1, T2> >(); }