Skip to content

Commit

Permalink
releasing v3.0.0
Browse files Browse the repository at this point in the history
  • Loading branch information
dadhi committed Mar 24, 2021
1 parent 94b1a96 commit 9ce4f69
Show file tree
Hide file tree
Showing 5 changed files with 13 additions and 30 deletions.
Binary file removed .nuget/NuGet.exe.old
Binary file not shown.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@

[![license](https://img.shields.io/github/license/dadhi/ImTools.svg)](http://opensource.org/licenses/MIT)

- Windows, Linux, MacOS [![Windows build](https://ci.appveyor.com/api/projects/status/el9echuqfnl86u53?svg=true)](https://ci.appveyor.com/project/MaksimVolkau/imtools/branch/master)

- Windows, Linux, MacOS [![CI build](https://ci.appveyor.com/api/projects/status/el9echuqfnl86u53?svg=true)](https://ci.appveyor.com/project/MaksimVolkau/imtools/branch/master)
- Lib package [![NuGet Badge](https://buildstats.info/nuget/ImTools.dll)](https://www.nuget.org/packages/ImTools.dll)
- Code package [![NuGet Badge](https://buildstats.info/nuget/ImTools)](https://www.nuget.org/packages/ImTools)
- Latest release [![latest release](https://img.shields.io/badge/latest%20release%20notes-v3.0.0-blue)](https://github.com/dadhi/ImTools/releases/tag/v3.0.0)

Fast and memory-efficient immutable collections and helper data structures.

Expand Down
5 changes: 3 additions & 2 deletions nuspecs/ImTools.nuspec
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata minClientVersion="3.3.0">
<id>ImTools</id>
<version>3.0.0-preview-01</version>
<version>3.0.0</version>
<authors>Maksim Volkau</authors>
<copyright>Copyright © 2016-2021 Maksim Volkau</copyright>
<projectUrl>https://github.com/dadhi/ImTools</projectUrl>
Expand All @@ -20,7 +20,8 @@
## v3.0.0 Major feature release
- Minimizing the target frameworks to the net45 and netstandard2.0
- Added fast and more memory efficient ImMap and ImHashMap based on 2-3-4 tree (#32, #35)
- Added fast and more memory efficient ImMap and ImHashMap based on 2-3 tree (#32, #35)
- Extended the map API with AddOrGetEntry, Count, ToArray, and ToDictionary methods, and more
]]>
</releaseNotes>
Expand Down
29 changes: 5 additions & 24 deletions src/ImTools/ImTools.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5119,20 +5119,9 @@ public static class ImHashMap
[MethodImpl((MethodImplOptions)256)]
public static ImHashMap<K, V> Entry<K, V>(K key, V value) => new ImHashMapEntry<K, V>(key.GetHashCode(), key, value);

/// <summary>Creates the map out of the entries in the final shape without wasting the memory</summary>
[MethodImpl((MethodImplOptions)256)]
public static ImHashMap<K, V> Create<K, V>(ImHashMapEntry<K, V> e0, ImHashMapEntry<K, V> e1) =>
e0.Hash < e1.Hash ? new ImHashMap<K, V>.Leaf2(e0, e1) : new ImHashMap<K, V>.Leaf2(e0, e1);

/// <summary>Creates the map out of the entries in the final shape without wasting the memory</summary>
[MethodImpl((MethodImplOptions)256)]
public static ImHashMap<K, V> Create<K, V>(ImHashMapEntry<K, V> e0, ImHashMapEntry<K, V> e1, ImHashMapEntry<K, V> e2) =>
new ImHashMap<K, V>.Leaf2Plus1(e2, (ImHashMap<K, V>.Leaf2)Create(e0, e1));

/// <summary>Creates the map out of the entries in the final shape without wasting the memory</summary>
/// <summary>Creates the entry to help with inference</summary>
[MethodImpl((MethodImplOptions)256)]
public static ImHashMap<K, V> Create<K, V>(ImHashMapEntry<K, V> e0, ImHashMapEntry<K, V> e1, ImHashMapEntry<K, V> e2, ImHashMapEntry<K, V> e3) =>
new ImHashMap<K, V>.Leaf2Plus1Plus1(e3, new ImHashMap<K, V>.Leaf2Plus1(e2, (ImHashMap<K, V>.Leaf2)Create(e0, e1)));
public static ImHashMap<K, V> Entry<K, V>(int hash, K key, V value) => new ImHashMapEntry<K, V>(hash, key, value);

private sealed class GoRightInBranch3<K, V>
{
Expand Down Expand Up @@ -6167,17 +6156,9 @@ public static ImHashMap<K, V> Remove<K, V>(this ImHashMap<K, V> map, K key) =>
/// <summary>The map methods</summary>
public static class ImMap
{
/// <summary>Creates the map out of the entries in the final shape without wasting the memory</summary>
public static ImMap<V> Create<V>(ImMapEntry<V> e0, ImMapEntry<V> e1) =>
e0.Hash < e1.Hash ? new ImMap<V>.Leaf2(e0, e1) : new ImMap<V>.Leaf2(e0, e1);

/// <summary>Creates the map out of the entries in the final shape without wasting the memory</summary>
public static ImMap<V> Create<V>(ImMapEntry<V> e0, ImMapEntry<V> e1, ImMapEntry<V> e2) =>
new ImMap<V>.Leaf2Plus1(e2, (ImMap<V>.Leaf2)Create(e0, e1));

/// <summary>Creates the map out of the entries in the final shape without wasting the memory</summary>
public static ImMap<V> Create<V>(ImMapEntry<V> e0, ImMapEntry<V> e1, ImMapEntry<V> e2, ImMapEntry<V> e3) =>
new ImMap<V>.Leaf2Plus1Plus1(e3, new ImMap<V>.Leaf2Plus1(e2, (ImMap<V>.Leaf2)Create(e0, e1)));
/// <summary>Creates the entry to help with inference</summary>
[MethodImpl((MethodImplOptions)256)]
public static ImMap<V> Entry<V>(int hash, V value) => new ImMapEntry<V>(hash, value);

private sealed class GoRightInBranch3<V>
{
Expand Down
5 changes: 3 additions & 2 deletions src/ImTools/ImTools.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

<Product>ImTools</Product>
<VersionPrefix>3.0.0</VersionPrefix>
<VersionSuffix>preview-01</VersionSuffix>
<VersionSuffix></VersionSuffix>

<AssemblyName>$(Product)</AssemblyName>
<AssemblyTitle>$(AssemblyName) $(TargetFramework)</AssemblyTitle>
Expand All @@ -23,7 +23,8 @@
## v3.0.0 Major feature release
- Minimizing the target frameworks to the net45 and netstandard2.0
- Added fast and more memory efficient ImMap and ImHashMap based on 2-3-4 tree (#32, #35)
- Added fast and more memory efficient ImMap and ImHashMap based on 2-3 tree (#32, #35)
- Extended the map API with AddOrGetEntry, Count, ToArray, and ToDictionary methods, and more
]]>
</PackageReleaseNotes>
Expand Down

0 comments on commit 9ce4f69

Please sign in to comment.