Rulealize.Plugin.Definition
1.0.0
See the version list below for details.
dotnet add package Rulealize.Plugin.Definition --version 1.0.0
NuGet\Install-Package Rulealize.Plugin.Definition -Version 1.0.0
<PackageReference Include="Rulealize.Plugin.Definition" Version="1.0.0" />
<PackageVersion Include="Rulealize.Plugin.Definition" Version="1.0.0" />
<PackageReference Include="Rulealize.Plugin.Definition" />
paket add Rulealize.Plugin.Definition --version 1.0.0
#r "nuget: Rulealize.Plugin.Definition, 1.0.0"
#:package Rulealize.Plugin.Definition@1.0.0
#addin nuget:?package=Rulealize.Plugin.Definition&version=1.0.0
#tool nuget:?package=Rulealize.Plugin.Definition&version=1.0.0
Rulealize.Plugin.Definition
References and applications of a Rulealize
rule set's definitions section.
| Plugin id | Rulealize.Plugin.Definition |
| Namespace | def |
| Reserved prefix | # |
| Depends on | Rulealize.Abstraction |
| Specification | doc/specification.md |
def.ref refers to a definition with no parameters, with "#name" as its shorthand;
def.call applies one that has parameters.
The definitions section is structurally the core's. It holds each entry as a name, a
parameter list and a body, and it rejects a cyclic reference graph before anything runs.
What the core never does is evaluate a body — that is this plugin's part, reached through
the evaluation context. So a rule set that defines nothing need not load this plugin at all.
Two things the specification settles that are worth knowing before you read it. Bodies are
hygienic: a body sees the state, the other definitions, and its own parameters, and
nothing from wherever it was called, which is what fixes a definition's meaning
independently of its call sites. And recursion is refused — the reference graph has to
be acyclic — because termination could not be guaranteed otherwise and GetValidInputs
evaluates hundreds of candidates per call.
Building
Rulealize.Abstraction is not on nuget.org yet, so NuGet.config points at a folder
feed. Produce it from the abstraction repository first:
dotnet pack path\to\Rulealize.Abstraction\src\Rulealize.Abstraction -c Release -o path\to\LocalNuGet
with LocalNuGet a sibling of this repository. Then dotnet build.
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.3.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.