RG.ZeroMapper.Structural 0.0.1

There is a newer version of this package available.
See the version list below for details.
dotnet add package RG.ZeroMapper.Structural --version 0.0.1
                    
NuGet\Install-Package RG.ZeroMapper.Structural -Version 0.0.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="RG.ZeroMapper.Structural" Version="0.0.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="RG.ZeroMapper.Structural" Version="0.0.1" />
                    
Directory.Packages.props
<PackageReference Include="RG.ZeroMapper.Structural" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add RG.ZeroMapper.Structural --version 0.0.1
                    
#r "nuget: RG.ZeroMapper.Structural, 0.0.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package RG.ZeroMapper.Structural@0.0.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=RG.ZeroMapper.Structural&version=0.0.1
                    
Install as a Cake Addin
#tool nuget:?package=RG.ZeroMapper.Structural&version=0.0.1
                    
Install as a Cake Tool

RG.ZeroMapper

RG.ZeroMapper is a Zero boilerplate (kind of) C# object mapper.

Bar b = new { X = 1 };

// Auto implicit cast
Foo f = b;

// The only boilerplate: Mark destination class as partial
partial class Foo {
    public int X;
    public string S;
}

partial class Bar {
    // same name, but it's a property instead of a field
    public int X { get; set; }
    
    // same name, different name casing
    public string s;
}

RG.ZeroMapper.Structural

RG.ZeroMapper.Structural leverages RG.ZeroMapper to enable structural typing in your C# code:

class A {
    public int X;
    public int Y;
}

class B {
    public int Y;
    public int Z;
}

record C() : Constant(1);

partial class D : Intersect<A, B, C> {
    // D implicitly contains Y
}

partial class E : Union<A, B, C> {
    // E implicitly contains X, Y, Z
    // E can be implicitly cast to int with the value of 1
    // E can be implicitly cast from int as long as the value is 1
    // E can be implicitly cast to C?
    // Unions can only contain 1 constant value of each value type
}

partial class F : OneOf<A, B, C> {
    // F is a discriminated union
    // F can be cast into A?, B?, or C?
    // Discriminated unions don't inherit any property
}
There are no supported framework assets in this package.

Learn more about Target Frameworks and .NET Standard.

  • .NETStandard 2.0

    • No dependencies.

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
1.0.2 271 12/17/2025
1.0.1 271 12/17/2025
0.0.5 269 12/16/2025
0.0.3 202 12/4/2025
0.0.2 191 12/4/2025
0.0.1 163 11/23/2025