public ReverseStringNode(IDotOutputDataPin <string> aFrom)
            {
                this.aFrom = aFrom;

                idps.Add(new InputDataPin(typeof(string).AssemblyQualifiedName));
                odps.Add(new OutputDataPin(this, typeof(string).AssemblyQualifiedName));
            }
            public ConcatenateNode(IDotOutputDataPin <string> aFrom, IDotOutputDataPin <string> bFrom, IInputExecPin execTo)
            {
                ixps.Add(new InputExecPin());
                odps.Add(new OutputDataPin(this, typeof(string).AssemblyQualifiedName));
                oxps.Add(new OutputExecPin(this));

                this.aFrom  = aFrom;
                this.bFrom  = bFrom;
                this.execTo = execTo;
            }
 public IDotNode <IInputExecPin, IDotOutputExecPin, IInputDataPin <string>, IDotOutputDataPin <string> > CreateReverseStringNode(IDotOutputDataPin <string> aFrom)
 => new ReverseStringNode(aFrom);
 public IDotNode <IInputExecPin, IDotOutputExecPin, IInputDataPin <string>, IDotOutputDataPin <string> > CreateConcatenateNode(IDotOutputDataPin <string> aFrom, IDotOutputDataPin <string> bFrom, IInputExecPin execTo)
 => new ConcatenateNode(aFrom, bFrom, execTo);