diff --git a/TunnelVisionLabs.Collections.Trees.Experimental/Concurrent/ConcurrentTreeBag`1+Enumerator.cs b/TunnelVisionLabs.Collections.Trees.Experimental/Concurrent/ConcurrentTreeBag`1+Enumerator.cs new file mode 100644 index 0000000..d7e12d2 --- /dev/null +++ b/TunnelVisionLabs.Collections.Trees.Experimental/Concurrent/ConcurrentTreeBag`1+Enumerator.cs @@ -0,0 +1,24 @@ +// Copyright (c) Tunnel Vision Laboratories, LLC. All Rights Reserved. +// Licensed under the MIT License. See LICENSE in the project root for license information. + +namespace TunnelVisionLabs.Collections.Trees.Concurrent +{ + using System.Collections; + using System.Collections.Generic; + + public partial class ConcurrentTreeBag + { + public struct Enumerator : IEnumerator + { + public T Current => throw null!; + + object? IEnumerator.Current => throw null!; + + public void Dispose() => throw null!; + + public bool MoveNext() => throw null!; + + public void Reset() => throw null!; + } + } +} diff --git a/TunnelVisionLabs.Collections.Trees.Experimental/Concurrent/ConcurrentTreeBag`1.cs b/TunnelVisionLabs.Collections.Trees.Experimental/Concurrent/ConcurrentTreeBag`1.cs new file mode 100644 index 0000000..fe919e3 --- /dev/null +++ b/TunnelVisionLabs.Collections.Trees.Experimental/Concurrent/ConcurrentTreeBag`1.cs @@ -0,0 +1,48 @@ +// Copyright (c) Tunnel Vision Laboratories, LLC. All Rights Reserved. +// Licensed under the MIT License. See LICENSE in the project root for license information. + +namespace TunnelVisionLabs.Collections.Trees.Concurrent +{ + using System; + using System.Collections; + using System.Collections.Concurrent; + using System.Collections.Generic; + using System.Diagnostics.CodeAnalysis; + + public partial class ConcurrentTreeBag : IProducerConsumerCollection, IReadOnlyCollection + { + public ConcurrentTreeBag() => throw null!; + + public ConcurrentTreeBag(IEnumerable collection) => throw null!; + + public int Count => throw null!; + + public bool IsEmpty => throw null!; + + bool ICollection.IsSynchronized => throw null!; + + object ICollection.SyncRoot => throw null!; + + public void Add(T item) => throw null!; + + public void Clear() => throw null!; + + public void CopyTo(T[] array, int index) => throw null!; + + public Enumerator GetEnumerator() => throw null!; + + IEnumerator IEnumerable.GetEnumerator() => throw null!; + + IEnumerator IEnumerable.GetEnumerator() => throw null!; + + public T[] ToArray() => throw null!; + + public bool TryPeek([MaybeNullWhen(false)] out T result) => throw null!; + + public bool TryTake([MaybeNullWhen(false)] out T result) => throw null!; + + void ICollection.CopyTo(Array array, int index) => throw null!; + + bool IProducerConsumerCollection.TryAdd(T item) => throw null!; + } +} diff --git a/TunnelVisionLabs.Collections.Trees.Experimental/Concurrent/ConcurrentTreeDictionary`2+Enumerator.cs b/TunnelVisionLabs.Collections.Trees.Experimental/Concurrent/ConcurrentTreeDictionary`2+Enumerator.cs new file mode 100644 index 0000000..fe84d64 --- /dev/null +++ b/TunnelVisionLabs.Collections.Trees.Experimental/Concurrent/ConcurrentTreeDictionary`2+Enumerator.cs @@ -0,0 +1,24 @@ +// Copyright (c) Tunnel Vision Laboratories, LLC. All Rights Reserved. +// Licensed under the MIT License. See LICENSE in the project root for license information. + +namespace TunnelVisionLabs.Collections.Trees.Concurrent +{ + using System.Collections; + using System.Collections.Generic; + + public partial class ConcurrentTreeDictionary + { + public struct Enumerator : IEnumerator> + { + public KeyValuePair Current => throw null!; + + object? IEnumerator.Current => throw null!; + + public void Dispose() => throw null!; + + public bool MoveNext() => throw null!; + + public void Reset() => throw null!; + } + } +} diff --git a/TunnelVisionLabs.Collections.Trees.Experimental/Concurrent/ConcurrentTreeDictionary`2+KeyCollection+Enumerator.cs b/TunnelVisionLabs.Collections.Trees.Experimental/Concurrent/ConcurrentTreeDictionary`2+KeyCollection+Enumerator.cs new file mode 100644 index 0000000..d1e9b59 --- /dev/null +++ b/TunnelVisionLabs.Collections.Trees.Experimental/Concurrent/ConcurrentTreeDictionary`2+KeyCollection+Enumerator.cs @@ -0,0 +1,27 @@ +// Copyright (c) Tunnel Vision Laboratories, LLC. All Rights Reserved. +// Licensed under the MIT License. See LICENSE in the project root for license information. + +namespace TunnelVisionLabs.Collections.Trees.Concurrent +{ + using System.Collections; + using System.Collections.Generic; + + public partial class ConcurrentTreeDictionary + { + public partial struct KeyCollection + { + public struct Enumerator : IEnumerator + { + public TKey Current => throw null!; + + object IEnumerator.Current => throw null!; + + public void Dispose() => throw null!; + + public bool MoveNext() => throw null!; + + public void Reset() => throw null!; + } + } + } +} diff --git a/TunnelVisionLabs.Collections.Trees.Experimental/Concurrent/ConcurrentTreeDictionary`2+KeyCollection.cs b/TunnelVisionLabs.Collections.Trees.Experimental/Concurrent/ConcurrentTreeDictionary`2+KeyCollection.cs new file mode 100644 index 0000000..49ef52f --- /dev/null +++ b/TunnelVisionLabs.Collections.Trees.Experimental/Concurrent/ConcurrentTreeDictionary`2+KeyCollection.cs @@ -0,0 +1,35 @@ +// Copyright (c) Tunnel Vision Laboratories, LLC. All Rights Reserved. +// Licensed under the MIT License. See LICENSE in the project root for license information. + +namespace TunnelVisionLabs.Collections.Trees.Concurrent +{ + using System; + using System.Collections; + using System.Collections.Generic; + + public partial class ConcurrentTreeDictionary + { + public partial struct KeyCollection : IReadOnlyCollection, ICollection + { + public int Count => throw null!; + + bool ICollection.IsReadOnly => throw null!; + + public Enumerator GetEnumerator() => throw null!; + + public bool Contains(TKey item) => throw null!; + + public void Clear() => throw new NotSupportedException(); + + public bool Remove(TKey item) => throw new NotSupportedException(); + + IEnumerator IEnumerable.GetEnumerator() => throw null!; + + IEnumerator IEnumerable.GetEnumerator() => throw null!; + + void ICollection.CopyTo(TKey[] array, int arrayIndex) => throw null!; + + void ICollection.Add(TKey item) => throw new NotSupportedException(); + } + } +} diff --git a/TunnelVisionLabs.Collections.Trees.Experimental/Concurrent/ConcurrentTreeDictionary`2+ValueCollection+Enumerator.cs b/TunnelVisionLabs.Collections.Trees.Experimental/Concurrent/ConcurrentTreeDictionary`2+ValueCollection+Enumerator.cs new file mode 100644 index 0000000..ad8bded --- /dev/null +++ b/TunnelVisionLabs.Collections.Trees.Experimental/Concurrent/ConcurrentTreeDictionary`2+ValueCollection+Enumerator.cs @@ -0,0 +1,27 @@ +// Copyright (c) Tunnel Vision Laboratories, LLC. All Rights Reserved. +// Licensed under the MIT License. See LICENSE in the project root for license information. + +namespace TunnelVisionLabs.Collections.Trees.Concurrent +{ + using System.Collections; + using System.Collections.Generic; + + public partial class ConcurrentTreeDictionary + { + public partial struct ValueCollection + { + public struct Enumerator : IEnumerator + { + public TValue Current => throw null!; + + object? IEnumerator.Current => throw null!; + + public void Dispose() => throw null!; + + public bool MoveNext() => throw null!; + + public void Reset() => throw null!; + } + } + } +} diff --git a/TunnelVisionLabs.Collections.Trees.Experimental/Concurrent/ConcurrentTreeDictionary`2+ValueCollection.cs b/TunnelVisionLabs.Collections.Trees.Experimental/Concurrent/ConcurrentTreeDictionary`2+ValueCollection.cs new file mode 100644 index 0000000..e6137eb --- /dev/null +++ b/TunnelVisionLabs.Collections.Trees.Experimental/Concurrent/ConcurrentTreeDictionary`2+ValueCollection.cs @@ -0,0 +1,35 @@ +// Copyright (c) Tunnel Vision Laboratories, LLC. All Rights Reserved. +// Licensed under the MIT License. See LICENSE in the project root for license information. + +namespace TunnelVisionLabs.Collections.Trees.Concurrent +{ + using System; + using System.Collections; + using System.Collections.Generic; + + public partial class ConcurrentTreeDictionary + { + public partial struct ValueCollection : IReadOnlyCollection, ICollection + { + public int Count => throw null!; + + bool ICollection.IsReadOnly => throw null!; + + public Enumerator GetEnumerator() => throw null!; + + public bool Contains(TValue item) => throw null!; + + IEnumerator IEnumerable.GetEnumerator() => throw null!; + + IEnumerator IEnumerable.GetEnumerator() => throw null!; + + void ICollection.CopyTo(TValue[] array, int arrayIndex) => throw null!; + + void ICollection.Add(TValue item) => throw new NotSupportedException(); + + void ICollection.Clear() => throw new NotSupportedException(); + + bool ICollection.Remove(TValue item) => throw new NotSupportedException(); + } + } +} diff --git a/TunnelVisionLabs.Collections.Trees.Experimental/Concurrent/ConcurrentTreeDictionary`2.cs b/TunnelVisionLabs.Collections.Trees.Experimental/Concurrent/ConcurrentTreeDictionary`2.cs new file mode 100644 index 0000000..eb0b069 --- /dev/null +++ b/TunnelVisionLabs.Collections.Trees.Experimental/Concurrent/ConcurrentTreeDictionary`2.cs @@ -0,0 +1,125 @@ +// Copyright (c) Tunnel Vision Laboratories, LLC. All Rights Reserved. +// Licensed under the MIT License. See LICENSE in the project root for license information. + +namespace TunnelVisionLabs.Collections.Trees.Concurrent +{ + using System; + using System.Collections; + using System.Collections.Generic; + using System.Diagnostics.CodeAnalysis; + + public partial class ConcurrentTreeDictionary + : IDictionary, IReadOnlyDictionary, IDictionary + where TKey : notnull + { + public ConcurrentTreeDictionary() => throw null!; + + public ConcurrentTreeDictionary(IEnumerable> collection) => throw null!; + + public ConcurrentTreeDictionary(IEqualityComparer? comparer) => throw null!; + + public ConcurrentTreeDictionary(IEnumerable> collection, IEqualityComparer? comparer) => throw null!; + + public ConcurrentTreeDictionary(int concurrencyLevel, int capacity) => throw null!; + + public ConcurrentTreeDictionary(int concurrencyLevel, IEnumerable> collection, IEqualityComparer? comparer) => throw null!; + + public ConcurrentTreeDictionary(int concurrencyLevel, int capacity, IEqualityComparer? comparer) => throw null!; + + public int Count => throw null!; + + public bool IsEmpty => throw null!; + + public KeyCollection Keys => throw null!; + + public ValueCollection Values => throw null!; + + bool ICollection.IsSynchronized => throw null!; + + object ICollection.SyncRoot => throw null!; + + bool ICollection>.IsReadOnly => throw null!; + + bool IDictionary.IsFixedSize => throw null!; + + bool IDictionary.IsReadOnly => throw null!; + + ICollection IDictionary.Keys => throw null!; + + ICollection IDictionary.Values => throw null!; + + ICollection IDictionary.Keys => throw null!; + + ICollection IDictionary.Values => throw null!; + + IEnumerable IReadOnlyDictionary.Keys => throw null!; + + IEnumerable IReadOnlyDictionary.Values => throw null!; + + public TValue this[TKey key] + { + get => throw null!; + set => throw null!; + } + + object? IDictionary.this[object key] + { + get => throw null!; + set => throw null!; + } + + public TValue AddOrUpdate(TKey key, Func addValueFactory, Func updateValueFactory) => throw null!; + + public TValue AddOrUpdate(TKey key, TValue addValue, Func updateValueFactory) => throw null!; + + public TValue AddOrUpdate(TKey key, Func addValueFactory, Func updateValueFactory, TArg factoryArgument) => throw null!; + + public void Clear() => throw null!; + + public bool ContainsKey(TKey key) => throw null!; + + public Enumerator GetEnumerator() => throw null!; + + public TValue GetOrAdd(TKey key, Func valueFactory) => throw null!; + + public TValue GetOrAdd(TKey key, TValue value) => throw null!; + + public TValue GetOrAdd(TKey key, Func valueFactory, TArg factoryArgument) => throw null!; + + public KeyValuePair[] ToArray() => throw null!; + + public bool TryAdd(TKey key, TValue value) => throw null!; + + public bool TryGetValue(TKey key, [MaybeNullWhen(false)] out TValue value) => throw null!; + + public bool TryRemove(TKey key, [MaybeNullWhen(false)] out TValue value) => throw null!; + + public bool TryUpdate(TKey key, TValue newValue, TValue comparisonValue) => throw null!; + + void ICollection.CopyTo(Array array, int index) => throw null!; + + void ICollection>.Add(KeyValuePair item) => throw null!; + + bool ICollection>.Contains(KeyValuePair item) => throw null!; + + void ICollection>.CopyTo(KeyValuePair[] array, int arrayIndex) => throw null!; + + bool ICollection>.Remove(KeyValuePair item) => throw null!; + + void IDictionary.Add(object key, object? value) => throw null!; + + bool IDictionary.Contains(object key) => throw null!; + + IDictionaryEnumerator IDictionary.GetEnumerator() => throw null!; + + void IDictionary.Remove(object key) => throw null!; + + void IDictionary.Add(TKey key, TValue value) => throw null!; + + bool IDictionary.Remove(TKey key) => throw null!; + + IEnumerator> IEnumerable>.GetEnumerator() => throw null!; + + IEnumerator IEnumerable.GetEnumerator() => throw null!; + } +} diff --git a/TunnelVisionLabs.Collections.Trees.Experimental/Concurrent/ConcurrentTreeQueue`1+Enumerator.cs b/TunnelVisionLabs.Collections.Trees.Experimental/Concurrent/ConcurrentTreeQueue`1+Enumerator.cs new file mode 100644 index 0000000..841e240 --- /dev/null +++ b/TunnelVisionLabs.Collections.Trees.Experimental/Concurrent/ConcurrentTreeQueue`1+Enumerator.cs @@ -0,0 +1,24 @@ +// Copyright (c) Tunnel Vision Laboratories, LLC. All Rights Reserved. +// Licensed under the MIT License. See LICENSE in the project root for license information. + +namespace TunnelVisionLabs.Collections.Trees.Concurrent +{ + using System.Collections; + using System.Collections.Generic; + + public partial class ConcurrentTreeQueue + { + public struct Enumerator : IEnumerator + { + public T Current => throw null!; + + object? IEnumerator.Current => throw null!; + + public void Dispose() => throw null!; + + public bool MoveNext() => throw null!; + + public void Reset() => throw null!; + } + } +} diff --git a/TunnelVisionLabs.Collections.Trees.Experimental/Concurrent/ConcurrentTreeQueue`1.cs b/TunnelVisionLabs.Collections.Trees.Experimental/Concurrent/ConcurrentTreeQueue`1.cs new file mode 100644 index 0000000..d6e257f --- /dev/null +++ b/TunnelVisionLabs.Collections.Trees.Experimental/Concurrent/ConcurrentTreeQueue`1.cs @@ -0,0 +1,50 @@ +// Copyright (c) Tunnel Vision Laboratories, LLC. All Rights Reserved. +// Licensed under the MIT License. See LICENSE in the project root for license information. + +namespace TunnelVisionLabs.Collections.Trees.Concurrent +{ + using System; + using System.Collections; + using System.Collections.Concurrent; + using System.Collections.Generic; + using System.Diagnostics.CodeAnalysis; + + public partial class ConcurrentTreeQueue : IProducerConsumerCollection, IReadOnlyCollection + { + public ConcurrentTreeQueue() => throw null!; + + public ConcurrentTreeQueue(IEnumerable collection) => throw null!; + + public int Count => throw null!; + + public bool IsEmpty => throw null!; + + bool ICollection.IsSynchronized => throw null!; + + object ICollection.SyncRoot => throw null!; + + public void Clear() => throw null!; + + public void CopyTo(T[] array, int index) => throw null!; + + public void Enqueue(T item) => throw null!; + + public Enumerator GetEnumerator() => throw null!; + + public T[] ToArray() => throw null!; + + public bool TryDequeue([MaybeNullWhen(false)] out T result) => throw null!; + + public bool TryPeek([MaybeNullWhen(false)] out T result) => throw null!; + + void ICollection.CopyTo(Array array, int index) => throw null!; + + IEnumerator IEnumerable.GetEnumerator() => throw null!; + + IEnumerator IEnumerable.GetEnumerator() => throw null!; + + bool IProducerConsumerCollection.TryAdd(T item) => throw null!; + + bool IProducerConsumerCollection.TryTake([MaybeNullWhen(false)] out T item) => throw null!; + } +} diff --git a/TunnelVisionLabs.Collections.Trees.Experimental/Concurrent/ConcurrentTreeStack`1+Enumerator.cs b/TunnelVisionLabs.Collections.Trees.Experimental/Concurrent/ConcurrentTreeStack`1+Enumerator.cs new file mode 100644 index 0000000..77b1f38 --- /dev/null +++ b/TunnelVisionLabs.Collections.Trees.Experimental/Concurrent/ConcurrentTreeStack`1+Enumerator.cs @@ -0,0 +1,24 @@ +// Copyright (c) Tunnel Vision Laboratories, LLC. All Rights Reserved. +// Licensed under the MIT License. See LICENSE in the project root for license information. + +namespace TunnelVisionLabs.Collections.Trees.Concurrent +{ + using System.Collections; + using System.Collections.Generic; + + public partial class ConcurrentTreeStack + { + public struct Enumerator : IEnumerator + { + public T Current => throw null!; + + object? IEnumerator.Current => throw null!; + + public void Dispose() => throw null!; + + public bool MoveNext() => throw null!; + + public void Reset() => throw null!; + } + } +} diff --git a/TunnelVisionLabs.Collections.Trees.Experimental/Concurrent/ConcurrentTreeStack`1.cs b/TunnelVisionLabs.Collections.Trees.Experimental/Concurrent/ConcurrentTreeStack`1.cs new file mode 100644 index 0000000..8332985 --- /dev/null +++ b/TunnelVisionLabs.Collections.Trees.Experimental/Concurrent/ConcurrentTreeStack`1.cs @@ -0,0 +1,58 @@ +// Copyright (c) Tunnel Vision Laboratories, LLC. All Rights Reserved. +// Licensed under the MIT License. See LICENSE in the project root for license information. + +namespace TunnelVisionLabs.Collections.Trees.Concurrent +{ + using System; + using System.Collections; + using System.Collections.Concurrent; + using System.Collections.Generic; + using System.Diagnostics.CodeAnalysis; + + public partial class ConcurrentTreeStack : IProducerConsumerCollection, IReadOnlyCollection + { + public ConcurrentTreeStack() => throw null!; + + public ConcurrentTreeStack(IEnumerable collection) => throw null!; + + public int Count => throw null!; + + public bool IsEmpty => throw null!; + + bool ICollection.IsSynchronized => throw null!; + + object ICollection.SyncRoot => throw null!; + + public void Clear() => throw null!; + + public void CopyTo(T[] array, int index) => throw null!; + + public Enumerator GetEnumerator() => throw null!; + + public void Push(T item) => throw null!; + + public void PushRange(T[] items) => throw null!; + + public void PushRange(T[] items, int startIndex, int count) => throw null!; + + public T[] ToArray() => throw null!; + + public bool TryPeek([MaybeNullWhen(false)] out T result) => throw null!; + + public bool TryPop([MaybeNullWhen(false)] out T result) => throw null!; + + public int TryPopRange(T[] items) => throw null!; + + public int TryPopRange(T[] items, int startIndex, int count) => throw null!; + + void ICollection.CopyTo(Array array, int index) => throw null!; + + IEnumerator IEnumerable.GetEnumerator() => throw null!; + + IEnumerator IEnumerable.GetEnumerator() => throw null!; + + bool IProducerConsumerCollection.TryAdd(T item) => throw null!; + + bool IProducerConsumerCollection.TryTake([MaybeNullWhen(false)] out T item) => throw null!; + } +} diff --git a/TunnelVisionLabs.Collections.Trees.Experimental/PublicAPI.Unshipped.txt b/TunnelVisionLabs.Collections.Trees.Experimental/PublicAPI.Unshipped.txt index 7dc5c58..4bfb79e 100644 --- a/TunnelVisionLabs.Collections.Trees.Experimental/PublicAPI.Unshipped.txt +++ b/TunnelVisionLabs.Collections.Trees.Experimental/PublicAPI.Unshipped.txt @@ -1 +1,117 @@ #nullable enable +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeBag +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeBag.Add(T item) -> void +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeBag.Clear() -> void +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeBag.ConcurrentTreeBag() -> void +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeBag.ConcurrentTreeBag(System.Collections.Generic.IEnumerable! collection) -> void +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeBag.CopyTo(T[]! array, int index) -> void +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeBag.Count.get -> int +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeBag.Enumerator +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeBag.Enumerator.Current.get -> T +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeBag.Enumerator.Dispose() -> void +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeBag.Enumerator.Enumerator() -> void +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeBag.Enumerator.MoveNext() -> bool +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeBag.Enumerator.Reset() -> void +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeBag.GetEnumerator() -> TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeBag.Enumerator +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeBag.IsEmpty.get -> bool +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeBag.ToArray() -> T[]! +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeBag.TryPeek(out T result) -> bool +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeBag.TryTake(out T result) -> bool +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.AddOrUpdate(TKey key, System.Func! addValueFactory, System.Func! updateValueFactory) -> TValue +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.AddOrUpdate(TKey key, TValue addValue, System.Func! updateValueFactory) -> TValue +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.AddOrUpdate(TKey key, System.Func! addValueFactory, System.Func! updateValueFactory, TArg factoryArgument) -> TValue +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.Clear() -> void +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.ConcurrentTreeDictionary() -> void +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.ConcurrentTreeDictionary(System.Collections.Generic.IEnumerable>! collection) -> void +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.ConcurrentTreeDictionary(System.Collections.Generic.IEnumerable>! collection, System.Collections.Generic.IEqualityComparer? comparer) -> void +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.ConcurrentTreeDictionary(System.Collections.Generic.IEqualityComparer? comparer) -> void +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.ConcurrentTreeDictionary(int concurrencyLevel, System.Collections.Generic.IEnumerable>! collection, System.Collections.Generic.IEqualityComparer? comparer) -> void +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.ConcurrentTreeDictionary(int concurrencyLevel, int capacity) -> void +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.ConcurrentTreeDictionary(int concurrencyLevel, int capacity, System.Collections.Generic.IEqualityComparer? comparer) -> void +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.ContainsKey(TKey key) -> bool +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.Count.get -> int +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.Enumerator +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.Enumerator.Current.get -> System.Collections.Generic.KeyValuePair +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.Enumerator.Dispose() -> void +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.Enumerator.Enumerator() -> void +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.Enumerator.MoveNext() -> bool +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.Enumerator.Reset() -> void +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.GetEnumerator() -> TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.Enumerator +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.GetOrAdd(TKey key, System.Func! valueFactory) -> TValue +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.GetOrAdd(TKey key, TValue value) -> TValue +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.GetOrAdd(TKey key, System.Func! valueFactory, TArg factoryArgument) -> TValue +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.IsEmpty.get -> bool +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.KeyCollection +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.KeyCollection.Clear() -> void +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.KeyCollection.Contains(TKey item) -> bool +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.KeyCollection.Count.get -> int +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.KeyCollection.Enumerator +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.KeyCollection.Enumerator.Current.get -> TKey +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.KeyCollection.Enumerator.Dispose() -> void +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.KeyCollection.Enumerator.Enumerator() -> void +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.KeyCollection.Enumerator.MoveNext() -> bool +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.KeyCollection.Enumerator.Reset() -> void +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.KeyCollection.GetEnumerator() -> TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.KeyCollection.Enumerator +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.KeyCollection.KeyCollection() -> void +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.KeyCollection.Remove(TKey item) -> bool +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.Keys.get -> TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.KeyCollection +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.ToArray() -> System.Collections.Generic.KeyValuePair[]! +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.TryAdd(TKey key, TValue value) -> bool +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.TryGetValue(TKey key, out TValue value) -> bool +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.TryRemove(TKey key, out TValue value) -> bool +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.TryUpdate(TKey key, TValue newValue, TValue comparisonValue) -> bool +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.ValueCollection +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.ValueCollection.Contains(TValue item) -> bool +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.ValueCollection.Count.get -> int +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.ValueCollection.Enumerator +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.ValueCollection.Enumerator.Current.get -> TValue +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.ValueCollection.Enumerator.Dispose() -> void +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.ValueCollection.Enumerator.Enumerator() -> void +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.ValueCollection.Enumerator.MoveNext() -> bool +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.ValueCollection.Enumerator.Reset() -> void +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.ValueCollection.GetEnumerator() -> TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.ValueCollection.Enumerator +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.ValueCollection.ValueCollection() -> void +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.Values.get -> TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.ValueCollection +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.this[TKey key].get -> TValue +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeDictionary.this[TKey key].set -> void +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeQueue +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeQueue.Clear() -> void +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeQueue.ConcurrentTreeQueue() -> void +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeQueue.ConcurrentTreeQueue(System.Collections.Generic.IEnumerable! collection) -> void +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeQueue.CopyTo(T[]! array, int index) -> void +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeQueue.Count.get -> int +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeQueue.Enqueue(T item) -> void +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeQueue.Enumerator +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeQueue.Enumerator.Current.get -> T +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeQueue.Enumerator.Dispose() -> void +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeQueue.Enumerator.Enumerator() -> void +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeQueue.Enumerator.MoveNext() -> bool +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeQueue.Enumerator.Reset() -> void +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeQueue.GetEnumerator() -> TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeQueue.Enumerator +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeQueue.IsEmpty.get -> bool +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeQueue.ToArray() -> T[]! +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeQueue.TryDequeue(out T result) -> bool +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeQueue.TryPeek(out T result) -> bool +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeStack +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeStack.Clear() -> void +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeStack.ConcurrentTreeStack() -> void +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeStack.ConcurrentTreeStack(System.Collections.Generic.IEnumerable! collection) -> void +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeStack.CopyTo(T[]! array, int index) -> void +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeStack.Count.get -> int +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeStack.Enumerator +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeStack.Enumerator.Current.get -> T +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeStack.Enumerator.Dispose() -> void +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeStack.Enumerator.Enumerator() -> void +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeStack.Enumerator.MoveNext() -> bool +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeStack.Enumerator.Reset() -> void +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeStack.GetEnumerator() -> TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeStack.Enumerator +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeStack.IsEmpty.get -> bool +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeStack.Push(T item) -> void +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeStack.PushRange(T[]! items) -> void +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeStack.PushRange(T[]! items, int startIndex, int count) -> void +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeStack.ToArray() -> T[]! +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeStack.TryPeek(out T result) -> bool +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeStack.TryPop(out T result) -> bool +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeStack.TryPopRange(T[]! items) -> int +TunnelVisionLabs.Collections.Trees.Concurrent.ConcurrentTreeStack.TryPopRange(T[]! items, int startIndex, int count) -> int