Rulealize.Plugin.Comparison
1.0.1
dotnet add package Rulealize.Plugin.Comparison --version 1.0.1
NuGet\Install-Package Rulealize.Plugin.Comparison -Version 1.0.1
<PackageReference Include="Rulealize.Plugin.Comparison" Version="1.0.1" />
<PackageVersion Include="Rulealize.Plugin.Comparison" Version="1.0.1" />
<PackageReference Include="Rulealize.Plugin.Comparison" />
paket add Rulealize.Plugin.Comparison --version 1.0.1
#r "nuget: Rulealize.Plugin.Comparison, 1.0.1"
#:package Rulealize.Plugin.Comparison@1.0.1
#addin nuget:?package=Rulealize.Plugin.Comparison&version=1.0.1
#tool nuget:?package=Rulealize.Plugin.Comparison&version=1.0.1
Rulealize.Plugin.Comparison
Equality, ordering and null tests for Rulealize rule sets.
| Plugin id | Rulealize.Plugin.Comparison |
| Namespace | cmp |
| Reserved prefix | none |
| Depends on | Rulealize.Abstraction |
| Specification | doc/specification.md |
cmp.eq, ne, lt, lte, gt, gte, compare, isNull, coalesce.
Kept apart from Rulealize.Plugin.Arithmetic because the reach is different: comparison
applies to text, booleans and opaque values as well as numbers, and a rule set that never
does arithmetic still compares things constantly. Three-way comparison lives here for the
same reason.
The asymmetry the specification is built around, stated plainly here because it is the
point of the plugin: equality is null-safe and ordering is not. cmp.eq accepts
anything and never faults — null against null is true, null against a value is false,
different kinds are unequal. The ordering operations refuse null and refuse mismatched
kinds, both as evaluation errors. "Is the absent value equal to black" has an obvious
answer; "is the absent value less than black" has none, and rather than bury an arbitrary
choice in the specification this plugin makes the rule author write cmp.isNull or
cmp.coalesce and say what they meant.
Text ordering is ordinal, by code point, never culture-aware, so that a rule set means the same thing on every host.
Building
dotnet build. Rulealize.Abstraction restores from nuget.org like any other package, so
this repository builds on its own.
License
Apache-2.0.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | 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
- Rulealize.Abstraction (>= 0.4.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.