decorate.go 354 B

12345678910111213
  1. package backends
  2. // We define what a decorator to our processor will look like
  3. type Decorator func(Processor) Processor
  4. // Decorate will decorate a processor with a slice of passed decorators
  5. func Decorate(c Processor, ds ...Decorator) Processor {
  6. decorated := c
  7. for _, decorate := range ds {
  8. decorated = decorate(decorated)
  9. }
  10. return decorated
  11. }