func Chain(filters ...Op) OpFunc {
	return func(in []byte) ([]byte, error) {
		if filters == nil {
			return in, nil
		}

		var err error
		data := in
		for _, filter := range filters {
			data, err = filter.Apply(data)
			if err != nil {
				return nil, err
			}
		}

		return data, nil
	}
}
func Chain(filters ...Op) OpFunc {
	return func(in []byte) ([]byte, error) {
		if filters == nil {
			return in, nil
		}

		var err error
		data := in
		for _, filter := range filters {
			data, err = filter.Apply(data)
			if err != nil {
				return nil, err
			}
		}

		return data, nil
	}
}
func Chain ( filters ... Op ) OpFunc { return func ( in [ ] byte ) ( [ ] byte , error ) { if filters == nil { return in , nil } var err error data := in for _ , filter := range filters { data , err = filter . Apply ( data ) if err != nil { return nil , err } } return data , nil } }
// Chain executes a series of operations in the order provided
Chain executes a series of operations in the order provided