func (s Stream) With(data interface{}) Stream {
	return (&with{data}).run(s)
}
With load the provided elements in the stream
package stream
import (
	"github.com/wesovilabs/koazee/errors"
	"reflect"
)
const OpCodeWith = "with"
type with struct {
	data interface{}
}
func (op *with) name() string {
	return OpCodeWith
}
func (op *with) run(s Stream) Stream {
	if reflect.TypeOf(op.data).Kind() == reflect.Slice {
		itemsType := reflect.TypeOf(op.data).Elem()
		s.items = op.data
		s.itemsType = itemsType
		s.itemsValue = reflect.ValueOf(op.data)
		s.itemsLen = s.itemsValue.Len()
		return s
	}
	return Error(errors.InvalidType(op.name(),
		"Unsupported type! Only arrays are permitted"))
}