diff options
author | 2025-03-09 17:47:56 +0100 | |
---|---|---|
committer | 2025-03-10 01:59:49 +0100 | |
commit | 3ac1ee16f377d31a0fb80c8dae28b6239ac4229e (patch) | |
tree | f61faa581feaaeaba2542b9f2b8234a590684413 /vendor/github.com/go-openapi/validate/slice_validator.go | |
parent | [chore] update URLs to forked source (diff) | |
download | gotosocial-3ac1ee16f377d31a0fb80c8dae28b6239ac4229e.tar.xz |
[chore] remove vendor
Diffstat (limited to 'vendor/github.com/go-openapi/validate/slice_validator.go')
-rw-r--r-- | vendor/github.com/go-openapi/validate/slice_validator.go | 150 |
1 files changed, 0 insertions, 150 deletions
diff --git a/vendor/github.com/go-openapi/validate/slice_validator.go b/vendor/github.com/go-openapi/validate/slice_validator.go deleted file mode 100644 index 13bb02087..000000000 --- a/vendor/github.com/go-openapi/validate/slice_validator.go +++ /dev/null @@ -1,150 +0,0 @@ -// Copyright 2015 go-swagger maintainers -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package validate - -import ( - "fmt" - "reflect" - - "github.com/go-openapi/spec" - "github.com/go-openapi/strfmt" -) - -type schemaSliceValidator struct { - Path string - In string - MaxItems *int64 - MinItems *int64 - UniqueItems bool - AdditionalItems *spec.SchemaOrBool - Items *spec.SchemaOrArray - Root interface{} - KnownFormats strfmt.Registry - Options *SchemaValidatorOptions -} - -func newSliceValidator(path, in string, - maxItems, minItems *int64, uniqueItems bool, - additionalItems *spec.SchemaOrBool, items *spec.SchemaOrArray, - root interface{}, formats strfmt.Registry, opts *SchemaValidatorOptions) *schemaSliceValidator { - if opts == nil { - opts = new(SchemaValidatorOptions) - } - - var v *schemaSliceValidator - if opts.recycleValidators { - v = pools.poolOfSliceValidators.BorrowValidator() - } else { - v = new(schemaSliceValidator) - } - - v.Path = path - v.In = in - v.MaxItems = maxItems - v.MinItems = minItems - v.UniqueItems = uniqueItems - v.AdditionalItems = additionalItems - v.Items = items - v.Root = root - v.KnownFormats = formats - v.Options = opts - - return v -} - -func (s *schemaSliceValidator) SetPath(path string) { - s.Path = path -} - -func (s *schemaSliceValidator) Applies(source interface{}, kind reflect.Kind) bool { - _, ok := source.(*spec.Schema) - r := ok && kind == reflect.Slice - return r -} - -func (s *schemaSliceValidator) Validate(data interface{}) *Result { - if s.Options.recycleValidators { - defer func() { - s.redeem() - }() - } - - var result *Result - if s.Options.recycleResult { - result = pools.poolOfResults.BorrowResult() - } else { - result = new(Result) - } - if data == nil { - return result - } - val := reflect.ValueOf(data) - size := val.Len() - - if s.Items != nil && s.Items.Schema != nil { - for i := 0; i < size; i++ { - validator := newSchemaValidator(s.Items.Schema, s.Root, s.Path, s.KnownFormats, s.Options) - validator.SetPath(fmt.Sprintf("%s.%d", s.Path, i)) - value := val.Index(i) - result.mergeForSlice(val, i, validator.Validate(value.Interface())) - } - } - - itemsSize := 0 - if s.Items != nil && len(s.Items.Schemas) > 0 { - itemsSize = len(s.Items.Schemas) - for i := 0; i < itemsSize; i++ { - if size <= i { - break - } - - validator := newSchemaValidator(&s.Items.Schemas[i], s.Root, fmt.Sprintf("%s.%d", s.Path, i), s.KnownFormats, s.Options) - result.mergeForSlice(val, i, validator.Validate(val.Index(i).Interface())) - } - } - if s.AdditionalItems != nil && itemsSize < size { - if s.Items != nil && len(s.Items.Schemas) > 0 && !s.AdditionalItems.Allows { - result.AddErrors(arrayDoesNotAllowAdditionalItemsMsg()) - } - if s.AdditionalItems.Schema != nil { - for i := itemsSize; i < size-itemsSize+1; i++ { - validator := newSchemaValidator(s.AdditionalItems.Schema, s.Root, fmt.Sprintf("%s.%d", s.Path, i), s.KnownFormats, s.Options) - result.mergeForSlice(val, i, validator.Validate(val.Index(i).Interface())) - } - } - } - - if s.MinItems != nil { - if err := MinItems(s.Path, s.In, int64(size), *s.MinItems); err != nil { - result.AddErrors(err) - } - } - if s.MaxItems != nil { - if err := MaxItems(s.Path, s.In, int64(size), *s.MaxItems); err != nil { - result.AddErrors(err) - } - } - if s.UniqueItems { - if err := UniqueItems(s.Path, s.In, val.Interface()); err != nil { - result.AddErrors(err) - } - } - result.Inc() - return result -} - -func (s *schemaSliceValidator) redeem() { - pools.poolOfSliceValidators.RedeemValidator(s) -} |