code: func (d Decorators) Decorate(handler Interface, name string) Interface {
  	result := handler
  	for _, d := range d {
  		result = d.Decorate(result, name)
  	}
  
  	return result
  }
docs: // Decorate applies the decorator in inside-out order, i.e. the first decorator in the slice is first applied to the given handler.