Condor.Visitor.Generator
0.0.3
dotnet add package Condor.Visitor.Generator --version 0.0.3
NuGet\Install-Package Condor.Visitor.Generator -Version 0.0.3
<PackageReference Include="Condor.Visitor.Generator" Version="0.0.3" />
<PackageVersion Include="Condor.Visitor.Generator" Version="0.0.3" />
<PackageReference Include="Condor.Visitor.Generator" />
paket add Condor.Visitor.Generator --version 0.0.3
#r "nuget: Condor.Visitor.Generator, 0.0.3"
#:package Condor.Visitor.Generator@0.0.3
#addin nuget:?package=Condor.Visitor.Generator&version=0.0.3
#tool nuget:?package=Condor.Visitor.Generator&version=0.0.3
Condor.Visitor.Generator
This generator help developper to generate interfaces/classes responding to the visitor pattern.
In assembly named shared, referencing assembly named Contracts, the Contracts.Abstractions.MyBaseEvent is used to generated the visitor. Derived types are discovered by the generator using the AutoAcceptorAttribute<>, it will find Contracts.MyItemCreated, Contracts.MyItemChanged, Contracts.MyITemDeleted types.
Actually, derived types cannot ordereds in the VisitREdirect method, please be aware of the behavior when using the generation of the VisitRedirect method.
namespace Shared.Visitors;
[Visitor]
[AutoAcceptor<MyBaseEvent>(AssemblyPattern = "Contracts.*", Accept = AcceptedKind.Concrete, AddVisitRedirect = true)]
[GenerateDefault(Options = OptionsDefault.AsbtractPartial, VisitOptions = VisitOptions.AbstractVisit)]
public partial interface IAppEventVisitor<in TArgs> { }
will generate :
// <auto-generated>
namespace Shared.Visitors
{
public partial interface IAppEventVisitor<in TArgs>
{
void VisitRedirect(Contracts.Abstractions.MyBaseEvent element, TArgs args);
void Visit(Contracts.MyItemChanged element, TArgs args);
void Visit(Contracts.MyItemCreated element, TArgs args);
void Visit(Contracts.MyItemDeleted element, TArgs args);
}
public abstract partial class DefaultAppEventVisitor<TArgs> : IAppEventVisitor<TArgs>
{
public virtual void VisitRedirect(Contracts.Abstractions.MyBaseEvent element, TArgs args)
{
switch (element)
{
case Contracts.MyItemChanged x:
Visit(x, args);
break;
case Contracts.MyItemCreated x:
Visit(x, args);
break;
case Contracts.MyItemDeleted x:
Visit(x, args);
break;
default:
throw new System.NotSupportedException();
}
}
public abstract void Visit(Contracts.MyItemChanged element, TArgs args);
public abstract void Visit(Contracts.MyItemCreated element, TArgs args);
public abstract void Visit(Contracts.MyItemDeleted element, TArgs args);
}
}
For more options availables on theses attributes please refer to the Condor.Visitor.Abstrations ReadMe
| 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
- RobinMustache.Generators.Accessor (>= 0.0.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.