Catchy.SourceGenerator
0.0.1
dotnet add package Catchy.SourceGenerator --version 0.0.1
NuGet\Install-Package Catchy.SourceGenerator -Version 0.0.1
<PackageReference Include="Catchy.SourceGenerator" Version="0.0.1" />
<PackageVersion Include="Catchy.SourceGenerator" Version="0.0.1" />
<PackageReference Include="Catchy.SourceGenerator" />
paket add Catchy.SourceGenerator --version 0.0.1
#r "nuget: Catchy.SourceGenerator, 0.0.1"
#:package Catchy.SourceGenerator@0.0.1
#addin nuget:?package=Catchy.SourceGenerator&version=0.0.1
#tool nuget:?package=Catchy.SourceGenerator&version=0.0.1
Catchy.SourceGenerator
Roslyn incremental source generator for Catchy — generates typed assertion surfaces and entry points from attributes.
dotnet add package Catchy
dotnet add package Catchy.SourceGenerator
Catchy.SourceGenerator is opt-in. Add it only when you use attribute-driven generation. Consumers who use only precompiled Catchy APIs need only Catchy.
Generate a typed assertion surface for your type
using Catchy;
[Assertable]
public class Order
{
public int Id { get; set; }
public decimal Total { get; set; }
public string Status { get; set; } = "";
}
The generator emits a typed assertion surface so Assert.That(order) produces OrderAssertions with members like .HasId(...), .HasTotal(...), .HasStatus(...).
Author domain assertions with [AssertFor]
using Catchy;
using Catchy.Sdk;
[AssertFor<Order>]
public static partial class OrderAssertions
{
[Assertion]
public static ValueAssertions<Order> IsPaid(this ValueAssertions<Order> a,
[CallerArgumentExpression(nameof(a))] string? expr = null)
{
a.Link("IsPaid", expr);
a.Op(a => CheckOperation.Sync(
() => a.GetValue().Status == "paid",
() => $"Expected order to be paid but was '{a.GetValue().Status}'",
a.IsSkipped()));
return a;
}
}
The generator wires the method into the fluent chain automatically.
Typed overloads with [GenerateTypedOverloads]
[GenerateTypedOverloads(typeof(int), typeof(long), typeof(decimal))]
public static ValueAssertions<int> IsPositive(this ValueAssertions<int> a, ...)
{ ... }
Generates IsPositive overloads for every listed type using textual substitution.
Pre-1.0 — API will change. Source generator architecture · Extensibility guide
| 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
- 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.