using System;
using Unity.Collections.LowLevel.Unsafe;
namespace Unity.Collections.LowLevel.Unsafe
{
    /// 
    /// Provides extension methods for sets.
    /// 
    public unsafe static class HashSetExtensions
    {
        /// 
        /// Removes the values from this set which are also present in another collection.
        /// 
        /// The type of values.
        /// The set to remove values from.
        /// The collection to compare with.
        public static void ExceptWith(this ref NativeHashSet container, UnsafeHashSet other)
            where T : unmanaged, IEquatable
        {
            foreach (var item in other)
            {
                container.Remove(item);
            }
        }
        /// 
        /// Removes the values from this set which are absent in another collection.
        /// 
        /// The type of values.
        /// The set to remove values from.
        /// The collection to compare with.
        public static void IntersectWith(this ref NativeHashSet container, UnsafeHashSet other)
            where T : unmanaged, IEquatable
        {
            var result = new UnsafeList(container.Count, Allocator.Temp);
            foreach (var item in other)
            {
                if (container.Contains(item))
                {
                    result.Add(item);
                }
            }
            container.Clear();
            container.UnionWith(result);
            result.Dispose();
        }
        /// 
        /// Adds all values from a collection to this set.
        /// 
        /// The type of values.
        /// The set to add values to.
        /// The collection to copy values from.
        public static void UnionWith(this ref NativeHashSet container, UnsafeHashSet other)
            where T : unmanaged, IEquatable
        {
            foreach (var item in other)
            {
                container.Add(item);
            }
        }
        /// 
        /// Removes the values from this set which are also present in another collection.
        /// 
        /// The type of values.
        /// The set to remove values from.
        /// The collection to compare with.
        public static void ExceptWith(this ref NativeHashSet container, UnsafeHashSet.ReadOnly other)
            where T : unmanaged, IEquatable
        {
            foreach (var item in other)
            {
                container.Remove(item);
            }
        }
        /// 
        /// Removes the values from this set which are absent in another collection.
        /// 
        /// The type of values.
        /// The set to remove values from.
        /// The collection to compare with.
        public static void IntersectWith(this ref NativeHashSet container, UnsafeHashSet.ReadOnly other)
            where T : unmanaged, IEquatable
        {
            var result = new UnsafeList(container.Count, Allocator.Temp);
            foreach (var item in other)
            {
                if (container.Contains(item))
                {
                    result.Add(item);
                }
            }
            container.Clear();
            container.UnionWith(result);
            result.Dispose();
        }
        /// 
        /// Adds all values from a collection to this set.
        /// 
        /// The type of values.
        /// The set to add values to.
        /// The collection to copy values from.
        public static void UnionWith(this ref NativeHashSet container, UnsafeHashSet.ReadOnly other)
            where T : unmanaged, IEquatable
        {
            foreach (var item in other)
            {
                container.Add(item);
            }
        }
        /// 
        /// Removes the values from this set which are also present in another collection.
        /// 
        /// The type of values.
        /// The set to remove values from.
        /// The collection to compare with.
        public static void ExceptWith(this ref NativeHashSet container, UnsafeParallelHashSet other)
            where T : unmanaged, IEquatable
        {
            foreach (var item in other)
            {
                container.Remove(item);
            }
        }
        /// 
        /// Removes the values from this set which are absent in another collection.
        /// 
        /// The type of values.
        /// The set to remove values from.
        /// The collection to compare with.
        public static void IntersectWith(this ref NativeHashSet container, UnsafeParallelHashSet other)
            where T : unmanaged, IEquatable
        {
            var result = new UnsafeList(container.Count, Allocator.Temp);
            foreach (var item in other)
            {
                if (container.Contains(item))
                {
                    result.Add(item);
                }
            }
            container.Clear();
            container.UnionWith(result);
            result.Dispose();
        }
        /// 
        /// Adds all values from a collection to this set.
        /// 
        /// The type of values.
        /// The set to add values to.
        /// The collection to copy values from.
        public static void UnionWith(this ref NativeHashSet container, UnsafeParallelHashSet other)
            where T : unmanaged, IEquatable
        {
            foreach (var item in other)
            {
                container.Add(item);
            }
        }
        /// 
        /// Removes the values from this set which are also present in another collection.
        /// 
        /// The type of values.
        /// The set to remove values from.
        /// The collection to compare with.
        public static void ExceptWith(this ref NativeHashSet container, UnsafeParallelHashSet.ReadOnly other)
            where T : unmanaged, IEquatable
        {
            foreach (var item in other)
            {
                container.Remove(item);
            }
        }
        /// 
        /// Removes the values from this set which are absent in another collection.
        /// 
        /// The type of values.
        /// The set to remove values from.
        /// The collection to compare with.
        public static void IntersectWith(this ref NativeHashSet container, UnsafeParallelHashSet.ReadOnly other)
            where T : unmanaged, IEquatable
        {
            var result = new UnsafeList(container.Count, Allocator.Temp);
            foreach (var item in other)
            {
                if (container.Contains(item))
                {
                    result.Add(item);
                }
            }
            container.Clear();
            container.UnionWith(result);
            result.Dispose();
        }
        /// 
        /// Adds all values from a collection to this set.
        /// 
        /// The type of values.
        /// The set to add values to.
        /// The collection to copy values from.
        public static void UnionWith(this ref NativeHashSet container, UnsafeParallelHashSet.ReadOnly other)
            where T : unmanaged, IEquatable
        {
            foreach (var item in other)
            {
                container.Add(item);
            }
        }
        /// 
        /// Removes the values from this set which are also present in another collection.
        /// 
        /// The type of values.
        /// The set to remove values from.
        /// The collection to compare with.
        public static void ExceptWith(this ref NativeHashSet container, UnsafeList other)
            where T : unmanaged, IEquatable
        {
            foreach (var item in other)
            {
                container.Remove(item);
            }
        }
        /// 
        /// Removes the values from this set which are absent in another collection.
        /// 
        /// The type of values.
        /// The set to remove values from.
        /// The collection to compare with.
        public static void IntersectWith(this ref NativeHashSet container, UnsafeList other)
            where T : unmanaged, IEquatable
        {
            var result = new UnsafeList(container.Count, Allocator.Temp);
            foreach (var item in other)
            {
                if (container.Contains(item))
                {
                    result.Add(item);
                }
            }
            container.Clear();
            container.UnionWith(result);
            result.Dispose();
        }
        /// 
        /// Adds all values from a collection to this set.
        /// 
        /// The type of values.
        /// The set to add values to.
        /// The collection to copy values from.
        public static void UnionWith(this ref NativeHashSet container, UnsafeList other)
            where T : unmanaged, IEquatable
        {
            foreach (var item in other)
            {
                container.Add(item);
            }
        }
        /// 
        /// Removes the values from this set which are also present in another collection.
        /// 
        /// The type of values.
        /// The set to remove values from.
        /// The collection to compare with.
        public static void ExceptWith(this ref NativeParallelHashSet container, UnsafeHashSet other)
            where T : unmanaged, IEquatable
        {
            foreach (var item in other)
            {
                container.Remove(item);
            }
        }
        /// 
        /// Removes the values from this set which are absent in another collection.
        /// 
        /// The type of values.
        /// The set to remove values from.
        /// The collection to compare with.
        public static void IntersectWith(this ref NativeParallelHashSet container, UnsafeHashSet other)
            where T : unmanaged, IEquatable
        {
            var result = new UnsafeList(container.Count(), Allocator.Temp);
            foreach (var item in other)
            {
                if (container.Contains(item))
                {
                    result.Add(item);
                }
            }
            container.Clear();
            container.UnionWith(result);
            result.Dispose();
        }
        /// 
        /// Adds all values from a collection to this set.
        /// 
        /// The type of values.
        /// The set to add values to.
        /// The collection to copy values from.
        public static void UnionWith(this ref NativeParallelHashSet container, UnsafeHashSet other)
            where T : unmanaged, IEquatable
        {
            foreach (var item in other)
            {
                container.Add(item);
            }
        }
        /// 
        /// Removes the values from this set which are also present in another collection.
        /// 
        /// The type of values.
        /// The set to remove values from.
        /// The collection to compare with.
        public static void ExceptWith(this ref NativeParallelHashSet container, UnsafeHashSet.ReadOnly other)
            where T : unmanaged, IEquatable
        {
            foreach (var item in other)
            {
                container.Remove(item);
            }
        }
        /// 
        /// Removes the values from this set which are absent in another collection.
        /// 
        /// The type of values.
        /// The set to remove values from.
        /// The collection to compare with.
        public static void IntersectWith(this ref NativeParallelHashSet container, UnsafeHashSet.ReadOnly other)
            where T : unmanaged, IEquatable
        {
            var result = new UnsafeList(container.Count(), Allocator.Temp);
            foreach (var item in other)
            {
                if (container.Contains(item))
                {
                    result.Add(item);
                }
            }
            container.Clear();
            container.UnionWith(result);
            result.Dispose();
        }
        /// 
        /// Adds all values from a collection to this set.
        /// 
        /// The type of values.
        /// The set to add values to.
        /// The collection to copy values from.
        public static void UnionWith(this ref NativeParallelHashSet container, UnsafeHashSet.ReadOnly other)
            where T : unmanaged, IEquatable
        {
            foreach (var item in other)
            {
                container.Add(item);
            }
        }
        /// 
        /// Removes the values from this set which are also present in another collection.
        /// 
        /// The type of values.
        /// The set to remove values from.
        /// The collection to compare with.
        public static void ExceptWith(this ref NativeParallelHashSet container, UnsafeParallelHashSet other)
            where T : unmanaged, IEquatable
        {
            foreach (var item in other)
            {
                container.Remove(item);
            }
        }
        /// 
        /// Removes the values from this set which are absent in another collection.
        /// 
        /// The type of values.
        /// The set to remove values from.
        /// The collection to compare with.
        public static void IntersectWith(this ref NativeParallelHashSet container, UnsafeParallelHashSet other)
            where T : unmanaged, IEquatable
        {
            var result = new UnsafeList(container.Count(), Allocator.Temp);
            foreach (var item in other)
            {
                if (container.Contains(item))
                {
                    result.Add(item);
                }
            }
            container.Clear();
            container.UnionWith(result);
            result.Dispose();
        }
        /// 
        /// Adds all values from a collection to this set.
        /// 
        /// The type of values.
        /// The set to add values to.
        /// The collection to copy values from.
        public static void UnionWith(this ref NativeParallelHashSet container, UnsafeParallelHashSet other)
            where T : unmanaged, IEquatable
        {
            foreach (var item in other)
            {
                container.Add(item);
            }
        }
        /// 
        /// Removes the values from this set which are also present in another collection.
        /// 
        /// The type of values.
        /// The set to remove values from.
        /// The collection to compare with.
        public static void ExceptWith(this ref NativeParallelHashSet container, UnsafeParallelHashSet.ReadOnly other)
            where T : unmanaged, IEquatable
        {
            foreach (var item in other)
            {
                container.Remove(item);
            }
        }
        /// 
        /// Removes the values from this set which are absent in another collection.
        /// 
        /// The type of values.
        /// The set to remove values from.
        /// The collection to compare with.
        public static void IntersectWith(this ref NativeParallelHashSet container, UnsafeParallelHashSet.ReadOnly other)
            where T : unmanaged, IEquatable
        {
            var result = new UnsafeList(container.Count(), Allocator.Temp);
            foreach (var item in other)
            {
                if (container.Contains(item))
                {
                    result.Add(item);
                }
            }
            container.Clear();
            container.UnionWith(result);
            result.Dispose();
        }
        /// 
        /// Adds all values from a collection to this set.
        /// 
        /// The type of values.
        /// The set to add values to.
        /// The collection to copy values from.
        public static void UnionWith(this ref NativeParallelHashSet container, UnsafeParallelHashSet.ReadOnly other)
            where T : unmanaged, IEquatable
        {
            foreach (var item in other)
            {
                container.Add(item);
            }
        }
        /// 
        /// Removes the values from this set which are also present in another collection.
        /// 
        /// The type of values.
        /// The set to remove values from.
        /// The collection to compare with.
        public static void ExceptWith(this ref NativeParallelHashSet container, UnsafeList other)
            where T : unmanaged, IEquatable
        {
            foreach (var item in other)
            {
                container.Remove(item);
            }
        }
        /// 
        /// Removes the values from this set which are absent in another collection.
        /// 
        /// The type of values.
        /// The set to remove values from.
        /// The collection to compare with.
        public static void IntersectWith(this ref NativeParallelHashSet container, UnsafeList other)
            where T : unmanaged, IEquatable
        {
            var result = new UnsafeList(container.Count(), Allocator.Temp);
            foreach (var item in other)
            {
                if (container.Contains(item))
                {
                    result.Add(item);
                }
            }
            container.Clear();
            container.UnionWith(result);
            result.Dispose();
        }
        /// 
        /// Adds all values from a collection to this set.
        /// 
        /// The type of values.
        /// The set to add values to.
        /// The collection to copy values from.
        public static void UnionWith(this ref NativeParallelHashSet container, UnsafeList other)
            where T : unmanaged, IEquatable
        {
            foreach (var item in other)
            {
                container.Add(item);
            }
        }
        /// 
        /// Removes the values from this set which are also present in another collection.
        /// 
        /// The type of values.
        /// The set to remove values from.
        /// The collection to compare with.
        public static void ExceptWith(this ref UnsafeHashSet container, FixedList128Bytes other)
            where T : unmanaged, IEquatable
        {
            foreach (var item in other)
            {
                container.Remove(item);
            }
        }
        /// 
        /// Removes the values from this set which are absent in another collection.
        /// 
        /// The type of values.
        /// The set to remove values from.
        /// The collection to compare with.
        public static void IntersectWith(this ref UnsafeHashSet container, FixedList128Bytes other)
            where T : unmanaged, IEquatable
        {
            var result = new UnsafeList(container.Count, Allocator.Temp);
            foreach (var item in other)
            {
                if (container.Contains(item))
                {
                    result.Add(item);
                }
            }
            container.Clear();
            container.UnionWith(result);
            result.Dispose();
        }
        /// 
        /// Adds all values from a collection to this set.
        /// 
        /// The type of values.
        /// The set to add values to.
        /// The collection to copy values from.
        public static void UnionWith(this ref UnsafeHashSet container, FixedList128Bytes other)
            where T : unmanaged, IEquatable
        {
            foreach (var item in other)
            {
                container.Add(item);
            }
        }
        /// 
        /// Removes the values from this set which are also present in another collection.
        /// 
        /// The type of values.
        /// The set to remove values from.
        /// The collection to compare with.
        public static void ExceptWith(this ref UnsafeHashSet container, FixedList32Bytes other)
            where T : unmanaged, IEquatable
        {
            foreach (var item in other)
            {
                container.Remove(item);
            }
        }
        /// 
        /// Removes the values from this set which are absent in another collection.
        /// 
        /// The type of values.
        /// The set to remove values from.
        /// The collection to compare with.
        public static void IntersectWith(this ref UnsafeHashSet container, FixedList32Bytes other)
            where T : unmanaged, IEquatable
        {
            var result = new UnsafeList(container.Count, Allocator.Temp);
            foreach (var item in other)
            {
                if (container.Contains(item))
                {
                    result.Add(item);
                }
            }
            container.Clear();
            container.UnionWith(result);
            result.Dispose();
        }
        /// 
        /// Adds all values from a collection to this set.
        /// 
        /// The type of values.
        /// The set to add values to.
        /// The collection to copy values from.
        public static void UnionWith(this ref UnsafeHashSet container, FixedList32Bytes other)
            where T : unmanaged, IEquatable
        {
            foreach (var item in other)
            {
                container.Add(item);
            }
        }
        /// 
        /// Removes the values from this set which are also present in another collection.
        /// 
        /// The type of values.
        /// The set to remove values from.
        /// The collection to compare with.
        public static void ExceptWith(this ref UnsafeHashSet container, FixedList4096Bytes other)
            where T : unmanaged, IEquatable
        {
            foreach (var item in other)
            {
                container.Remove(item);
            }
        }
        /// 
        /// Removes the values from this set which are absent in another collection.
        /// 
        /// The type of values.
        /// The set to remove values from.
        /// The collection to compare with.
        public static void IntersectWith(this ref UnsafeHashSet container, FixedList4096Bytes other)
            where T : unmanaged, IEquatable
        {
            var result = new UnsafeList(container.Count, Allocator.Temp);
            foreach (var item in other)
            {
                if (container.Contains(item))
                {
                    result.Add(item);
                }
            }
            container.Clear();
            container.UnionWith(result);
            result.Dispose();
        }
        /// 
        /// Adds all values from a collection to this set.
        /// 
        /// The type of values.
        /// The set to add values to.
        /// The collection to copy values from.
        public static void UnionWith(this ref UnsafeHashSet container, FixedList4096Bytes other)
            where T : unmanaged, IEquatable
        {
            foreach (var item in other)
            {
                container.Add(item);
            }
        }
        /// 
        /// Removes the values from this set which are also present in another collection.
        /// 
        /// The type of values.
        /// The set to remove values from.
        /// The collection to compare with.
        public static void ExceptWith(this ref UnsafeHashSet container, FixedList512Bytes other)
            where T : unmanaged, IEquatable
        {
            foreach (var item in other)
            {
                container.Remove(item);
            }
        }
        /// 
        /// Removes the values from this set which are absent in another collection.
        /// 
        /// The type of values.
        /// The set to remove values from.
        /// The collection to compare with.
        public static void IntersectWith(this ref UnsafeHashSet container, FixedList512Bytes other)
            where T : unmanaged, IEquatable
        {
            var result = new UnsafeList(container.Count, Allocator.Temp);
            foreach (var item in other)
            {
                if (container.Contains(item))
                {
                    result.Add(item);
                }
            }
            container.Clear();
            container.UnionWith(result);
            result.Dispose();
        }
        /// 
        /// Adds all values from a collection to this set.
        /// 
        /// The type of values.
        /// The set to add values to.
        /// The collection to copy values from.
        public static void UnionWith(this ref UnsafeHashSet container, FixedList512Bytes other)
            where T : unmanaged, IEquatable
        {
            foreach (var item in other)
            {
                container.Add(item);
            }
        }
        /// 
        /// Removes the values from this set which are also present in another collection.
        /// 
        /// The type of values.
        /// The set to remove values from.
        /// The collection to compare with.
        public static void ExceptWith(this ref UnsafeHashSet container, FixedList64Bytes other)
            where T : unmanaged, IEquatable
        {
            foreach (var item in other)
            {
                container.Remove(item);
            }
        }
        /// 
        /// Removes the values from this set which are absent in another collection.
        /// 
        /// The type of values.
        /// The set to remove values from.
        /// The collection to compare with.
        public static void IntersectWith(this ref UnsafeHashSet container, FixedList64Bytes other)
            where T : unmanaged, IEquatable
        {
            var result = new UnsafeList(container.Count, Allocator.Temp);
            foreach (var item in other)
            {
                if (container.Contains(item))
                {
                    result.Add(item);
                }
            }
            container.Clear();
            container.UnionWith(result);
            result.Dispose();
        }
        /// 
        /// Adds all values from a collection to this set.
        /// 
        /// The type of values.
        /// The set to add values to.
        /// The collection to copy values from.
        public static void UnionWith(this ref UnsafeHashSet container, FixedList64Bytes other)
            where T : unmanaged, IEquatable
        {
            foreach (var item in other)
            {
                container.Add(item);
            }
        }
        /// 
        /// Removes the values from this set which are also present in another collection.
        /// 
        /// The type of values.
        /// The set to remove values from.
        /// The collection to compare with.
        public static void ExceptWith(this ref UnsafeHashSet container, NativeArray other)
            where T : unmanaged, IEquatable
        {
            foreach (var item in other)
            {
                container.Remove(item);
            }
        }
        /// 
        /// Removes the values from this set which are absent in another collection.
        /// 
        /// The type of values.
        /// The set to remove values from.
        /// The collection to compare with.
        public static void IntersectWith(this ref UnsafeHashSet container, NativeArray other)
            where T : unmanaged, IEquatable
        {
            var result = new UnsafeList(container.Count, Allocator.Temp);
            foreach (var item in other)
            {
                if (container.Contains(item))
                {
                    result.Add(item);
                }
            }
            container.Clear();
            container.UnionWith(result);
            result.Dispose();
        }
        /// 
        /// Adds all values from a collection to this set.
        /// 
        /// The type of values.
        /// The set to add values to.
        /// The collection to copy values from.
        public static void UnionWith(this ref UnsafeHashSet container, NativeArray other)
            where T : unmanaged, IEquatable
        {
            foreach (var item in other)
            {
                container.Add(item);
            }
        }
        /// 
        /// Removes the values from this set which are also present in another collection.
        /// 
        /// The type of values.
        /// The set to remove values from.
        /// The collection to compare with.
        public static void ExceptWith(this ref UnsafeHashSet container, NativeHashSet other)
            where T : unmanaged, IEquatable
        {
            foreach (var item in other)
            {
                container.Remove(item);
            }
        }
        /// 
        /// Removes the values from this set which are absent in another collection.
        /// 
        /// The type of values.
        /// The set to remove values from.
        /// The collection to compare with.
        public static void IntersectWith(this ref UnsafeHashSet container, NativeHashSet other)
            where T : unmanaged, IEquatable
        {
            var result = new UnsafeList(container.Count, Allocator.Temp);
            foreach (var item in other)
            {
                if (container.Contains(item))
                {
                    result.Add(item);
                }
            }
            container.Clear();
            container.UnionWith(result);
            result.Dispose();
        }
        /// 
        /// Adds all values from a collection to this set.
        /// 
        /// The type of values.
        /// The set to add values to.
        /// The collection to copy values from.
        public static void UnionWith(this ref UnsafeHashSet container, NativeHashSet other)
            where T : unmanaged, IEquatable
        {
            foreach (var item in other)
            {
                container.Add(item);
            }
        }
        /// 
        /// Removes the values from this set which are also present in another collection.
        /// 
        /// The type of values.
        /// The set to remove values from.
        /// The collection to compare with.
        public static void ExceptWith(this ref UnsafeHashSet container, NativeHashSet.ReadOnly other)
            where T : unmanaged, IEquatable
        {
            foreach (var item in other)
            {
                container.Remove(item);
            }
        }
        /// 
        /// Removes the values from this set which are absent in another collection.
        /// 
        /// The type of values.
        /// The set to remove values from.
        /// The collection to compare with.
        public static void IntersectWith(this ref UnsafeHashSet container, NativeHashSet.ReadOnly other)
            where T : unmanaged, IEquatable
        {
            var result = new UnsafeList(container.Count, Allocator.Temp);
            foreach (var item in other)
            {
                if (container.Contains(item))
                {
                    result.Add(item);
                }
            }
            container.Clear();
            container.UnionWith(result);
            result.Dispose();
        }
        /// 
        /// Adds all values from a collection to this set.
        /// 
        /// The type of values.
        /// The set to add values to.
        /// The collection to copy values from.
        public static void UnionWith(this ref UnsafeHashSet container, NativeHashSet.ReadOnly other)
            where T : unmanaged, IEquatable
        {
            foreach (var item in other)
            {
                container.Add(item);
            }
        }
        /// 
        /// Removes the values from this set which are also present in another collection.
        /// 
        /// The type of values.
        /// The set to remove values from.
        /// The collection to compare with.
        public static void ExceptWith(this ref UnsafeHashSet container, UnsafeHashSet other)
            where T : unmanaged, IEquatable
        {
            foreach (var item in other)
            {
                container.Remove(item);
            }
        }
        /// 
        /// Removes the values from this set which are absent in another collection.
        /// 
        /// The type of values.
        /// The set to remove values from.
        /// The collection to compare with.
        public static void IntersectWith(this ref UnsafeHashSet container, UnsafeHashSet other)
            where T : unmanaged, IEquatable
        {
            var result = new UnsafeList(container.Count, Allocator.Temp);
            foreach (var item in other)
            {
                if (container.Contains(item))
                {
                    result.Add(item);
                }
            }
            container.Clear();
            container.UnionWith(result);
            result.Dispose();
        }
        /// 
        /// Adds all values from a collection to this set.
        /// 
        /// The type of values.
        /// The set to add values to.
        /// The collection to copy values from.
        public static void UnionWith(this ref UnsafeHashSet container, UnsafeHashSet other)
            where T : unmanaged, IEquatable
        {
            foreach (var item in other)
            {
                container.Add(item);
            }
        }
        /// 
        /// Removes the values from this set which are also present in another collection.
        /// 
        /// The type of values.
        /// The set to remove values from.
        /// The collection to compare with.
        public static void ExceptWith(this ref UnsafeHashSet container, UnsafeHashSet.ReadOnly other)
            where T : unmanaged, IEquatable
        {
            foreach (var item in other)
            {
                container.Remove(item);
            }
        }
        /// 
        /// Removes the values from this set which are absent in another collection.
        /// 
        /// The type of values.
        /// The set to remove values from.
        /// The collection to compare with.
        public static void IntersectWith(this ref UnsafeHashSet container, UnsafeHashSet.ReadOnly other)
            where T : unmanaged, IEquatable