44 lines
1.3 KiB
C#
44 lines
1.3 KiB
C#
using System.Collections.Generic;
|
|
using Just.Railway.SourceGen.Executors;
|
|
using Just.Railway.SourceGen.Executors.ResultExtensions.MainExtensions;
|
|
using Just.Railway.SourceGen.Executors.ResultExtensions.ValueTaskExtensions;
|
|
using Microsoft.CodeAnalysis;
|
|
|
|
namespace Just.Railway.SourceGen;
|
|
|
|
[Generator]
|
|
public class ExtensionsMethodGenerator : IIncrementalGenerator
|
|
{
|
|
private readonly IEnumerable<IGeneratorExecutor> _executors =
|
|
[
|
|
new ResultCombineExecutor(),
|
|
|
|
new ResultMatchExecutor(),
|
|
new ResultMapExecutor(),
|
|
new ResultBindExecutor(),
|
|
new ResultTapExecutor(),
|
|
new ResultExtendExecutor(),
|
|
new ResultTryRecoverExecutor(),
|
|
new ResultAppendExecutor(),
|
|
|
|
new ResultValueTaskMatchExecutor(),
|
|
new ResultValueTaskMapExecutor(),
|
|
new ResultValueTaskBindExecutor(),
|
|
new ResultValueTaskTapExecutor(),
|
|
new ResultValueTaskExtendExecutor(),
|
|
new ResultValueTaskTryRecoverExecutor(),
|
|
new ResultValueTaskAppendExecutor(),
|
|
|
|
new TryExtensionsExecutor(),
|
|
new EnsureExtensionsExecutor(),
|
|
];
|
|
|
|
public void Initialize(IncrementalGeneratorInitializationContext context)
|
|
{
|
|
foreach (var executor in _executors)
|
|
{
|
|
context.RegisterPostInitializationOutput(executor.Execute);
|
|
}
|
|
}
|
|
}
|