es_expr

package
v1.14.10 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 5, 2024 License: MIT Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var DefaultFnMap = map[string]map[token.Token]ConditionFn{
	"==": {
		token.NUM:    equal[float64],
		token.BOOL:   equal[bool],
		token.STRING: equalStr,
	},
	"!=": {
		token.NUM:    unEqual[float64],
		token.BOOL:   unEqual[bool],
		token.STRING: unEqualStr,
	},
	">=": {
		token.NUM:    gte[float64],
		token.STRING: gte[string],
	},
	"<=": {
		token.NUM:    lte[float64],
		token.STRING: lte[string],
	},
	">": {
		token.NUM:    gt[float64],
		token.STRING: lt[string],
	},
	"<": {
		token.NUM:    lt[float64],
		token.STRING: lt[string],
	},
	"contains": {
		token.STRING: contains,
	},
	"unContains": {
		token.STRING: unContains,
	},
	"startsWith": {
		token.STRING: startsWith,
	},
	"unStartsWith": {
		token.STRING: unStartsWith,
	},
	"endsWith": {
		token.STRING: endsWith,
	},
	"unEndsWith": {
		token.STRING: unEndsWith,
	},
	"reg": {
		token.STRING: reg,
	},
	"in": {
		token.STRING: in,
	},
	"notIn": {
		token.STRING: notIn,
	},
	"&": {},
	"|": {},
}
View Source
var StdExecutor = New(nil)

Functions

This section is empty.

Types

type ConditionFn added in v1.13.1

type ConditionFn func(key string, value any) map[string]any

type Executor

type Executor struct {
	FnMap map[string]map[token.Token]ConditionFn
}

func New

func New(fnMap map[string]map[token.Token]ConditionFn) *Executor

func (*Executor) DoAst

func (e *Executor) DoAst(ast *expression.AstNode, prefix, suffix string) (query map[string]any, keys []string)

DoAst 执行 ast

func (*Executor) DoExpr

func (e *Executor) DoExpr(expr string, prefix, suffix string) (query map[string]any, keys []string, err error)

DoExpr 执行表达式

func (*Executor) DoTerm

func (e *Executor) DoTerm(term *expression.AstNode, prefix, suffix string) (query map[string]any, keys []string)

DoTerm 执行 term

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL