#nullable enable using System.Collections.Generic; using ShrinkShared.CodeGen; using Unity.CompilationPipeline.Common.Diagnostics; using Unity.CompilationPipeline.Common.ILPostProcessing; namespace ShrinkEventBus.CodeGen { public sealed class EventBusILPostProcessor : ILPostProcessor { public override ILPostProcessor GetInstance() => this; public override bool WillProcess(ICompiledAssembly compiledAssembly) => UnityShrinkCodeGenAdapter.ReferencesAny(compiledAssembly, "ShrinkEventBus.Runtime"); public override ILPostProcessResult Process(ICompiledAssembly compiledAssembly) => WillProcess(compiledAssembly) ? UnityShrinkCodeGenAdapter.Process(compiledAssembly, "ShrinkEventBus.CodeGen") : new ILPostProcessResult(compiledAssembly.InMemoryAssembly, new List()); } }