using System; using NodePipeline.Abstractions.Models; namespace NodePipeline.Abstractions.Interfaces.Nodes; /// /// For implementation use /// public interface INodeField { /// /// Node field name /// string Name { get; } /// /// Description /// string? Description { get; } /// /// Node field code (with node id) /// string Code { get; } /// /// Node field value /// T Value { get; set; } /// /// Node field direction /// /// Port directions: Input, Output ///
/// Parameter: Parameter ///
///
FieldDirection Direction { get; } /// /// Method for connect two nodes directly /// /// output port Disallows null void BindStatic(INodeField outputPort); /// /// Method for runtime binding /// /// getter function – connection between two nodes Disallows null /// setter action Allows null void BindRuntime(Func getter, Action setter); } public enum FieldDirection { /// /// Node field is port with direction INPUT /// Input, /// /// Node field is port with direction OUTPUT /// Output, /// /// Node field is PARAMETER /// Parameter }