/****************************************************************************** * Copyright (C) Ultraleap, Inc. 2011-2021. * * * * Use subject to the terms of the Apache License 2.0 available at * * http://www.apache.org/licenses/LICENSE-2.0, or another agreement * * between Ultraleap and you, your company or other organization. * ******************************************************************************/ using System.Collections.Generic; namespace Leap.Unity { using Query; /// /// A simple wrapper around HashSet to provide readonly access. /// Useful when you want to return a HashSet to someone but you want /// to make sure they don't muck it up! /// public struct ReadonlyHashSet { private readonly HashSet _set; public ReadonlyHashSet(HashSet set) { _set = set; } public int Count { get { return _set.Count; } } public HashSet.Enumerator GetEnumerator() { return _set.GetEnumerator(); } public bool Contains(T obj) { return _set.Contains(obj); } public Query Query() { return _set.Query(); } public static implicit operator ReadonlyHashSet(HashSet set) { return new ReadonlyHashSet(set); } public static implicit operator ReadonlyHashSet(SerializableHashSet set) { return (HashSet)set; } } }