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 _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); } } }