File: context.go

package info (click to toggle)
golang-github-viant-assertly 0.5.4-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, sid, trixie
  • size: 240 kB
  • sloc: makefile: 2
file content (41 lines) | stat: -rw-r--r-- 878 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package assertly

import (
	"github.com/viant/toolbox"
)

//Context represent validation context
type Context struct {
	toolbox.Context
	Directives *Directives
	Evaluator  *toolbox.MacroEvaluator

	StrictDatTypeCheck bool
}

//NewContext returns a context
func NewContext(ctx toolbox.Context, directives *Directives, evaluator *toolbox.MacroEvaluator) *Context {
	if ctx == nil {
		ctx = toolbox.NewContext()
	}
	if directives == nil {
		directives = NewDirectives()
	}
	if evaluator == nil {
		evaluator = NewDefaultMacroEvaluator()
	}
	return &Context{
		Context:    ctx,
		Directives: directives,
		Evaluator:  evaluator,
	}
}

//NewDefaultContext returns default context
func NewDefaultContext() *Context {
	return NewContext(nil, nil, nil)
}

func NewDefaultMacroEvaluator() *toolbox.MacroEvaluator {
	return toolbox.NewMacroEvaluator("<ds:", ">", ValueProviderRegistry)
}