github.com/alkemics/goflow@v0.2.1/wrappers/types/renderers.go (about)

     1  package types
     2  
     3  import "github.com/alkemics/goflow"
     4  
     5  type nodeRenderer struct {
     6  	goflow.NodeRenderer
     7  
     8  	typedInputs  []goflow.Field
     9  	typedOutputs []goflow.Field
    10  }
    11  
    12  func (n nodeRenderer) Inputs() []goflow.Field {
    13  	return n.typedInputs
    14  }
    15  
    16  func (n nodeRenderer) Outputs() []goflow.Field {
    17  	return n.typedOutputs
    18  }
    19  
    20  type graphRenderer struct {
    21  	goflow.GraphRenderer
    22  	nodes     []goflow.NodeRenderer
    23  	outputMap map[string]string
    24  }
    25  
    26  func (g graphRenderer) Nodes() []goflow.NodeRenderer { return g.nodes }
    27  
    28  func (g graphRenderer) Outputs() []goflow.Field {
    29  	outputs := g.GraphRenderer.Outputs()
    30  	typedOutputs := make([]goflow.Field, len(outputs))
    31  	for i, f := range outputs {
    32  		if typ, ok := g.outputMap[f.Name]; ok {
    33  			f.Type = typ
    34  		}
    35  		typedOutputs[i] = f
    36  	}
    37  	return typedOutputs
    38  }