func NewChainInjector(is []Injector, opts ...ChainInjectorOption) (*ChainInjector, error) {
	ci := &ChainInjector{}
	for _, opt := range opts {
		err := opt.applyChainInjector(ci)
		if err != nil {
			return nil, err
		}
	}
	for _, i := range is {
		ci.middlewares = append(ci.middlewares, i.Handler)
	}
	return ci, nil
}
NewChainInjector combines many Injectors into a single Injector that runs them in order.
package fault
import "net/http"
type ChainInjector struct {
	middlewares []func(next http.Handler) http.Handler
}
type ChainInjectorOption interface {
	applyChainInjector(i *ChainInjector) error
}