func IsSliceOf()

in isdef/dsl.go [61:78]


func IsSliceOf(validator validator.Validator) IsDef {
	return Is("slice", func(path llpath.Path, v interface{}) *llresult.Results {
		if reflect.TypeOf(v).Kind() != reflect.Slice {
			return llresult.SimpleResult(path, false, "Expected slice at given path")
		}
		vSlice := llreflect.InterfaceToSliceOfInterfaces(v)

		res := llresult.NewResults()

		for idx, curV := range vSlice {
			var validatorRes *llresult.Results
			validatorRes = validator(curV)
			res.MergeUnderPrefix(path.ExtendSlice(idx), validatorRes)
		}

		return res
	})
}