Skip to content

Commit 2b32787

Browse files
committed
6.0.0
-Add LargeSpan<T> and ReadOnlyLargeSpan<T> for enhanced slicing capabilities -Add LargeLinkedList<T> -bug fixes -Refactor LargeDictionary<T> -Rewrite tests
1 parent 3035505 commit 2b32787

47 files changed

Lines changed: 10781 additions & 6650 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Directory.Build.props

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
<Project>
2-
<PropertyGroup>
3-
<ImplicitUsings>enable</ImplicitUsings>
2+
<PropertyGroup>
43
<Nullable>disable</Nullable>
54
<LangVersion>latest</LangVersion>
65
<Deterministic>true</Deterministic>
@@ -15,9 +14,9 @@
1514
<PackageProjectUrl>https://github.com/DevAM-Tools/LargeCollections</PackageProjectUrl>
1615
<RepositoryUrl>https://github.com/DevAM-Tools/LargeCollections</RepositoryUrl>
1716
<PackageReadmeFile>README.md</PackageReadmeFile>
18-
<Version>5.0.2</Version>
19-
<AssemblyVersion>5.0.2</AssemblyVersion>
20-
<FileVersion>5.0.2</FileVersion>
17+
<Version>6.0.0</Version>
18+
<AssemblyVersion>6.0.0</AssemblyVersion>
19+
<FileVersion>6.0.0</FileVersion>
2120
<SignAssembly>False</SignAssembly>
2221
</PropertyGroup>
2322
<PropertyGroup Condition="'$(Configuration)' == 'Release'">

LargeCollections.DiskCache/DiskCache.cs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,12 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
2424
*/
2525

2626
using Microsoft.Data.Sqlite;
27+
using System;
2728
using System.Collections;
29+
using System.Collections.Generic;
2830
using System.Diagnostics;
31+
using System.IO;
32+
using System.Linq;
2933
using System.Runtime.CompilerServices;
3034

3135
namespace LargeCollections.DiskCache;
@@ -680,6 +684,20 @@ public void AddRange(IEnumerable<KeyValuePair<TKey, TValue>> items)
680684
}
681685
}
682686

687+
public void AddRange(ReadOnlyLargeSpan<KeyValuePair<TKey, TValue>> items)
688+
{
689+
if (IsReadOnly)
690+
{
691+
throw new InvalidOperationException("Modifications are not allowed when opened in read only mode.");
692+
}
693+
694+
for (long i = 0L; i < items.Count; i++)
695+
{
696+
KeyValuePair<TKey, TValue> item = items[i];
697+
Set(item.Key, item.Value);
698+
}
699+
}
700+
683701
#if NETSTANDARD2_1_OR_GREATER || NETCOREAPP3_0_OR_GREATER || NET5_0_OR_GREATER
684702
[MethodImpl(MethodImplOptions.AggressiveInlining)]
685703
public void AddRange(ReadOnlySpan<KeyValuePair<TKey, TValue>> items)

LargeCollections.DiskCache/Interfaces/DiskCacheInterfaces.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
2323
SOFTWARE.
2424
*/
2525

26+
using System.Collections.Generic;
27+
2628
namespace LargeCollections.DiskCache;
2729

2830
public interface IDiskCache<TKey, TValue> : ILargeDictionary<TKey, TValue> where TKey : notnull

LargeCollections.DiskCache/LargeCollections.DiskCache.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFrameworks>netstandard2.0;netstandard2.1;net6.0;net8.0</TargetFrameworks>
4+
<TargetFrameworks>netstandard2.0;netstandard2.1;net6.0</TargetFrameworks>
55
<PackageTags>LargeCollection;LargeCollections;Large;Collection;Collections;Dictionary;DiskCache;Cache;Disk;Sqlite;Spatial;Query</PackageTags>
66
<Description>Dictionary-like collections that allow to limit the amount of memory (RAM) in MB that will be used. Any memory requirement that exceeds this amount is automatically swapped out to disk. Additionally it offers multi-threaded operations for performance improvements.</Description>
77
<Title>LargeCollections.DiskCache</Title>
@@ -17,7 +17,7 @@
1717
</ItemGroup>
1818

1919
<ItemGroup>
20-
<PackageReference Include="Microsoft.Data.Sqlite" Version="9.0.10" />
20+
<PackageReference Include="Microsoft.Data.Sqlite" Version="10.0.0" />
2121
</ItemGroup>
2222

2323
<ItemGroup>

LargeCollections.DiskCache/ParallelEnumerableExtensions.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,12 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
2323
SOFTWARE.
2424
*/
2525

26+
using System;
27+
using System.Collections.Generic;
28+
using System.Linq;
2629
using System.Runtime.CompilerServices;
30+
using System.Threading;
31+
using System.Threading.Tasks;
2732

2833
namespace LargeCollections.DiskCache;
2934

LargeCollections.DiskCache/SpatialDiskCache.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,10 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
2424
*/
2525

2626
using Microsoft.Data.Sqlite;
27+
using System;
28+
using System.Collections.Generic;
2729
using System.Diagnostics;
30+
using System.Linq;
2831
using System.Runtime.CompilerServices;
2932

3033
namespace LargeCollections.DiskCache;

LargeCollections.Observable/ILargeObservableCollection.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,4 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
2525

2626
namespace LargeCollections.Observable;
2727

28-
public interface ILargeObservableCollection<T> : IReadOnlyLargeObservableCollection<T>, ILargeList<T>
29-
{
30-
}
28+
public interface ILargeObservableCollection<T> : IReadOnlyLargeObservableCollection<T>, ILargeList<T>;

LargeCollections.Observable/IReadOnlyLargeObservableCollection.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
2323
SOFTWARE.
2424
*/
2525

26+
using System;
2627
using System.Collections.Specialized;
2728
using System.ComponentModel;
2829

LargeCollections.Observable/LargeCollections.Observable.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFrameworks>netstandard2.0;netstandard2.1;net6.0;net8.0</TargetFrameworks>
4+
<TargetFrameworks>netstandard2.0;netstandard2.1;net6.0</TargetFrameworks>
55
<PackageTags>ObservableCollection,LargeObservableCollection</PackageTags>
66
<Description>
77
A large observable collection that can store up to 1_152_921_504_606_846_976 items.

0 commit comments

Comments
 (0)