Simple function pipe lining package
pipe, err := pipeline.Chain(
f1,
f2,
f3,
)
if err != nil {
fmt.Println(err)
return
}
pipe.Process(input)
It uses a lot of the reflect package, if functions in the pipeline haven't compatibles arguments and return values you'll get panic
Reflection is never clear.