blob: deeec2f2eccdcef73e93e6929f7010459fe3bb7c [file] [log] [blame]
Serge Bazanskicc25bdf2018-10-25 14:02:58 +02001// Copyright 2015 go-swagger maintainers
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15package validate
16
17import "sync"
18
19// Opts specifies validation options for a SpecValidator.
20//
21// NOTE: other options might be needed, for example a go-swagger specific mode.
22type Opts struct {
23 ContinueOnErrors bool // true: continue reporting errors, even if spec is invalid
24}
25
26var (
27 defaultOpts = Opts{ContinueOnErrors: false} // default is to stop validation on errors
28 defaultOptsMutex = &sync.Mutex{}
29)
30
31// SetContinueOnErrors sets global default behavior regarding spec validation errors reporting.
32//
33// For extended error reporting, you most likely want to set it to true.
34// For faster validation, it's better to give up early when a spec is detected as invalid: set it to false (this is the default).
35//
36// Setting this mode does NOT affect the validation status.
37//
38// NOTE: this method affects global defaults. It is not suitable for a concurrent usage.
39func SetContinueOnErrors(c bool) {
40 defer defaultOptsMutex.Unlock()
41 defaultOptsMutex.Lock()
42 defaultOpts.ContinueOnErrors = c
43}