Pure.Chart.RelationalModel.HashCodes
0.1.0-preview.3.0.0
dotnet add package Pure.Chart.RelationalModel.HashCodes --version 0.1.0-preview.3.0.0
NuGet\Install-Package Pure.Chart.RelationalModel.HashCodes -Version 0.1.0-preview.3.0.0
<PackageReference Include="Pure.Chart.RelationalModel.HashCodes" Version="0.1.0-preview.3.0.0" />
<PackageVersion Include="Pure.Chart.RelationalModel.HashCodes" Version="0.1.0-preview.3.0.0" />
<PackageReference Include="Pure.Chart.RelationalModel.HashCodes" />
paket add Pure.Chart.RelationalModel.HashCodes --version 0.1.0-preview.3.0.0
#r "nuget: Pure.Chart.RelationalModel.HashCodes, 0.1.0-preview.3.0.0"
#:package Pure.Chart.RelationalModel.HashCodes@0.1.0-preview.3.0.0
#addin nuget:?package=Pure.Chart.RelationalModel.HashCodes&version=0.1.0-preview.3.0.0&prerelease
#tool nuget:?package=Pure.Chart.RelationalModel.HashCodes&version=0.1.0-preview.3.0.0&prerelease
Pure.Chart.RelationalModel.HashCodes
Deterministic hash code implementations for chart relational model entities — Chart, ChartType, Axis, and ChartSeries — in the Pure ecosystem.
Overview
Pure.Chart.RelationalModel.HashCodes provides four sealed record types, each producing a deterministic byte-sequence hash for a chart domain entity. Every type implements IDeterminedHash and prepends a unique 16-byte type prefix before concatenating field hashes, ensuring no collisions across entity types.
Each field can independently be supplied either as a raw primitive (IGuid / IString) or a pre-computed IDeterminedHash, enabling partial hash reuse through functional composition.
Hash Types
| Type | Hashed Fields |
|---|---|
ChartRelationalModelHash |
Id, Title, Description, TypeId, XAxisId, YAxisId |
ChartTypeRelationalModelHash |
Id, Name |
AxisRelationalModelHash |
Id, Legend |
ChartSeriesRelationalModelHash |
Id, ChartId, Legend, XAxisSource, YAxisSource, LineType |
All types are in the Pure.Chart.RelationalModel.HashCodes namespace.
Design Principles
- Deterministic — identical inputs always produce identical byte sequences.
- Type-safe — each entity type carries a hard-coded 16-byte prefix, preventing cross-type hash collisions.
- Composable — any field can be replaced with a pre-computed
IDeterminedHashwithout recomputing the others. - AOT-compatible — safe for Native AOT publishing.
Dependencies
Pure.Chart.RelationalModel.Abstractions— interfaces for chart relational model entities (IChartRelationalModel,IChartTypeRelationalModel,IAxisRelationalModel,IChartSeriesRelationalModel)Pure.HashCodes— coreDeterminedHashimplementation that wrapsIGuid/IStringprimitives into enumerable byte sequences
Target Frameworks
- .NET 7
- .NET 8
- .NET 9
- .NET 10
Installation
dotnet add package Pure.Chart.RelationalModel.HashCodes
Usage
// Hash an entire model in one call
IDeterminedHash hash = new ChartRelationalModelHash(chart);
// Or mix raw values with pre-computed hashes
IDeterminedHash hash = new ChartRelationalModelHash(
idHash: precomputedIdHash,
chart.Title,
chart.Description,
chart.TypeId,
chart.XAxisId,
chart.YAxisId
);
// Consume the byte sequence
byte[] bytes = hash.ToArray();
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Pure.Chart.RelationalModel.Abstractions (>= 0.1.0-preview.7.0.0)
- Pure.HashCodes (>= 2.1.0)
-
net7.0
- Pure.Chart.RelationalModel.Abstractions (>= 0.1.0-preview.7.0.0)
- Pure.HashCodes (>= 2.1.0)
-
net8.0
- Pure.Chart.RelationalModel.Abstractions (>= 0.1.0-preview.7.0.0)
- Pure.HashCodes (>= 2.1.0)
-
net9.0
- Pure.Chart.RelationalModel.Abstractions (>= 0.1.0-preview.7.0.0)
- Pure.HashCodes (>= 2.1.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.0-preview.3.0.0 | 82 | 10/23/2026 |
| 0.1.0-preview.2.0.0 | 429 | 4/26/2026 |
| 0.1.0-preview.1.0.0 | 101 | 4/19/2026 |
| 0.1.0-preview.0.2.0 | 101 | 4/4/2026 |
| 0.1.0-preview.0.1.0 | 101 | 3/23/2026 |