using System; using System.Collections.Generic; using System.Runtime.CompilerServices; using System.Text; namespace StgSharp.Logic { public interface IConvertableToBlueprintNode { #pragma warning disable CA1819 public string[] InputInterfacesName { get; } #pragma warning restore CA1819 #pragma warning disable CA1819 public string[] OutputInterfacesName { get; } #pragma warning restore CA1819 [MethodImpl(MethodImplOptions.AggressiveInlining)] public void ExecuteMain( in Dictionary input, in Dictionary output); } internal class DefaultConvertableToBlueprintNode : IConvertableToBlueprintNode { private string[] _input; private string[] _output; private BlueprintNodeMainExecution _execute; string[] IConvertableToBlueprintNode.InputInterfacesName => _input; string[] IConvertableToBlueprintNode.OutputInterfacesName => _output; void IConvertableToBlueprintNode.ExecuteMain(in Dictionary input, in Dictionary output) { _execute(in input, in output); } } public delegate void BlueprintNodeMainExecution(in Dictionary input, in Dictionary output); }