From 7ee6ca1a52c8c46945e7a3909e2bfbfa815ae59c Mon Sep 17 00:00:00 2001 From: bojancrevar Date: Wed, 25 Feb 2026 16:29:38 +0100 Subject: [PATCH] icon and docs link --- bindings/uniffi/nuget/GoRules.ZenEngine.csproj | 3 +++ bindings/uniffi/nuget/README.md | 15 ++++++++------- bindings/uniffi/nuget/icon.png | Bin 0 -> 8564 bytes 3 files changed, 11 insertions(+), 7 deletions(-) create mode 100644 bindings/uniffi/nuget/icon.png diff --git a/bindings/uniffi/nuget/GoRules.ZenEngine.csproj b/bindings/uniffi/nuget/GoRules.ZenEngine.csproj index 5c7be94f..9698645c 100644 --- a/bindings/uniffi/nuget/GoRules.ZenEngine.csproj +++ b/bindings/uniffi/nuget/GoRules.ZenEngine.csproj @@ -4,9 +4,11 @@ net8.0 GoRules.ZenEngine GoRules + GoRules ZEN Engine - Business Rules Engine for .NET. Execute JSON Decision Models (JDM) with native performance via Rust FFI bindings. MIT https://github.com/gorules/zen + icon.png https://github.com/gorules/zen rules-engine;business-rules;decision-engine;jdm;gorules enable @@ -19,6 +21,7 @@ + diff --git a/bindings/uniffi/nuget/README.md b/bindings/uniffi/nuget/README.md index 1440bb75..2fd72fd9 100644 --- a/bindings/uniffi/nuget/README.md +++ b/bindings/uniffi/nuget/README.md @@ -13,6 +13,12 @@ dotnet add package GoRules.ZenEngine ```csharp using GoRules.ZenEngine; +// Create engine and evaluate +var engine = new ZenEngine(loader: new FileLoader(), customNode: null); +var context = new JsonBuffer("{\"input\": 42}"); +var response = await engine.Evaluate("my-decision.json", context, null); +Console.WriteLine(response.result.ToString()); + // Implement a loader to resolve decision files class FileLoader : ZenDecisionLoaderCallback { @@ -22,12 +28,6 @@ class FileLoader : ZenDecisionLoaderCallback return Task.FromResult(new JsonBuffer(bytes)); } } - -// Create engine and evaluate -var engine = new ZenEngine(loader: new FileLoader(), customNode: null); -var context = new JsonBuffer("{\"input\": 42}"); -var response = await engine.Evaluate("my-decision.json", context, null); -Console.WriteLine(response.result.ToString()); ``` ## Features @@ -66,6 +66,7 @@ var result = ZenUniffiMethods.EvaluateExpression( // Compiled expression (reusable, better performance) var expr = ZenExpression.Compile("a + b * 2"); var output = expr.Evaluate(new JsonBuffer("{\"a\": 1, \"b\": 10}")); +Console.WriteLine($"output: {output}"); expr.Dispose(); ``` @@ -92,5 +93,5 @@ var engine = new ZenEngine(loader: new FileLoader(), customNode: new MyCustomNod ## Links - [GitHub Repository](https://github.com/gorules/zen) -- [GoRules Documentation](https://gorules.io/docs) +- [GoRules Documentation](https://gorules.mintlify.app/developers/sdks/csharp) - [JDM Editor](https://editor.gorules.io) diff --git a/bindings/uniffi/nuget/icon.png b/bindings/uniffi/nuget/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..b3199c44454b62a97da3583d5d82e2d4730b08d0 GIT binary patch literal 8564 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