MCPcopy Create free account
hub / github.com/docker/cli / getMostSpecificError

Function getMostSpecificError

cli/compose/schema/schema.go:156–185  ·  view source on GitHub ↗
(errs []gojsonschema.ResultError)

Source from the content-addressed store, hash-verified

154}
155
156func getMostSpecificError(errs []gojsonschema.ResultError) validationError {
157 mostSpecificError := 0
158 for i, err := range errs {
159 if specificity(err) > specificity(errs[mostSpecificError]) {
160 mostSpecificError = i
161 continue
162 }
163
164 if specificity(err) == specificity(errs[mostSpecificError]) {
165 // Invalid type errors win in a tie-breaker for most specific field name
166 if err.Type() == "invalid_type" && errs[mostSpecificError].Type() != "invalid_type" {
167 mostSpecificError = i
168 }
169 }
170 }
171
172 if mostSpecificError+1 == len(errs) {
173 return validationError{parent: errs[mostSpecificError]}
174 }
175
176 switch errs[mostSpecificError].Type() {
177 case "number_one_of", "number_any_of":
178 return validationError{
179 parent: errs[mostSpecificError],
180 child: errs[mostSpecificError+1],
181 }
182 default:
183 return validationError{parent: errs[mostSpecificError]}
184 }
185}
186
187func specificity(err gojsonschema.ResultError) int {
188 return len(strings.Split(err.Field(), "."))

Callers 1

toErrorFunction · 0.85

Calls 2

specificityFunction · 0.85
TypeMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…