Dunet 0.1.3
Use v0.2.2 or higher to get the generator DLL with the package.
See the version list below for details.
dotnet add package Dunet --version 0.1.3
NuGet\Install-Package Dunet -Version 0.1.3
<PackageReference Include="Dunet" Version="0.1.3" />
<PackageVersion Include="Dunet" Version="0.1.3" />
<PackageReference Include="Dunet" />
paket add Dunet --version 0.1.3
#r "nuget: Dunet, 0.1.3"
#:package Dunet@0.1.3
#addin nuget:?package=Dunet&version=0.1.3
#tool nuget:?package=Dunet&version=0.1.3
Dunet
Dunet is a simple source generator for discriminated unions in C#.
Usage
// 1. Import the namespace.
using Dunet;
namespace Shapes;
// 2. Add the `Union` attribute to an interface.
[Union]
public interface IShape
{
// 3. Define the union members as interface methods.
IShape Circle(double radius);
IShape Rectangle(double length, double width);
IShape Triangle(double @base, double height);
}
// 4. Use the union members.
var shape = new Rectangle(3, 4);
var area = shape switch
{
Circle c => 3.14 * c.Radius * c.Radius,
Rectangle r => r.Length * r.Width,
Triangle t => t.Base * t.Height / 2,
_ => 0d,
};
Console.WriteLine(area); // "12"
Install
- NuGet:
dotnet add package dunet
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. 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 was computed. 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 was computed. 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 was computed. 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. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Microsoft.CodeAnalysis.CSharp (>= 4.2.0)
NuGet packages (11)
Showing the top 5 NuGet packages that depend on Dunet:
| Package | Downloads |
|---|---|
|
ZeroC.Slice
Slice for C#. |
|
|
InsurScan.Models
API contracts for InsurScan platform. Contains request/response models for building custom clients or integrating with the InsurScan API. |
|
|
Xenial.Identity.Client
Package Description |
|
|
TeaPie
The core of TeaPie.Tool in form of library. |
|
|
Morphir
Morphir executable package for AOT and single-file deployments |
GitHub repositories (2)
Showing the top 2 popular GitHub repositories that depend on Dunet:
| Repository | Stars |
|---|---|
|
harrison314/BouncyHsm
Bouncy Hsm is a software simulator of HSM and smartcard simulator with HTML UI, REST API and PKCS#11 interface.
|
|
|
icerpc/icerpc-csharp
A C# RPC framework built for QUIC, with bidirectional streaming, first-class async/await, and Protobuf support.
|
| Version | Downloads | Last Updated | |
|---|---|---|---|
| 1.16.1 | 13,617 | 2/16/2026 | |
| 1.16.0 | 229 | 2/14/2026 | |
| 1.15.0 | 4,741 | 1/29/2026 | |
| 1.14.0 | 17,174 | 1/27/2026 | |
| 1.13.1 | 1,070 | 1/25/2026 | |
| 1.13.0 | 281 | 1/25/2026 | |
| 1.13.0-preview2 | 99 | 1/25/2026 | |
| 1.13.0-preview1 | 98 | 1/25/2026 | |
| 1.12.0 | 1,867 | 1/19/2026 | |
| 1.12.0-preview1 | 101 | 1/19/2026 | |
| 1.11.4 | 1,195 | 1/17/2026 | |
| 1.11.4-preview3 | 102 | 1/17/2026 | |
| 1.11.4-preview2 | 116 | 1/17/2026 | |
| 1.11.4-preview1 | 111 | 1/17/2026 | |
| 1.11.3 | 89,257 | 6/13/2025 | |
| 1.11.2 | 224,692 | 1/29/2024 | |
| 1.11.1 | 558 | 1/27/2024 | |
| 1.11.0 | 8,999 | 1/4/2024 | |
| 1.11.0-alpha1 | 485 | 1/4/2024 | |
| 0.1.3 | 1,209 | 6/15/2022 |
0.1.3 - Add support for declaring unions inside top level programs.
0.1.2 - Simplify generated source.
0.1.1 - Support any number of interfaces.
0.1.0 - Initial release.