filters

package module
v1.20.0 Latest Latest
Warning

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

Go to latest
Published: Jan 20, 2021 License: GPL-3.0 Imports: 3 Imported by: 0

Documentation

Index

Constants

View Source
const (
	EqualFunctionName = "iTrellis::filters::equals"
)

defaults function names

Variables

View Source
var (
	ErrInvalidFilterName        = errors.TN(namespace, 1000, "invalid filter name")
	ErrFilterFunctionEqualNil   = errors.TN(namespace, 1001, "filter function should not be nil")
	ErrNotSupportedFilterType   = errors.TN(namespace, 1002, "filter type not supported")
	ErrNotExistsInputParams     = errors.TN(namespace, 1003, "not exists input params")
	ErrNotExistsTargetParams    = errors.TN(namespace, 1004, "not exists target params")
	ErrFailedExecFilterFunction = errors.TN(namespace, 1005, "failed exec filter function: {{.err}}")
	ErrFailedExecTimeout        = errors.TN(namespace, 1006, "exec filter function timeout")
	ErrTimeoutMustAboveZero     = errors.TN(namespace, 1007, "set timeout must above zero")
	ErrUnknownCompareType       = errors.TN(namespace, 1008, "unknown compare type")
)

errors

Functions

func CompareEqualsFunc added in v0.0.3

func CompareEqualsFunc(input, target FilterValues) (filtered bool, err error)

CompareEqualsFunc compare values must equal

Types

type CompareFunc added in v0.0.3

type CompareFunc func(input, target FilterValues) (filtered bool, err error)

CompareFunc is the function you want to compare input values with target values Input Values is the k:v maps with input values Target Values is the k:v maps with filter values return bool is filtered return error if compare function has internal error you can write you campare functions like FilterFunc, then manager.AddFilterFunc(name, filterFunc)

type CompareType added in v0.0.3

type CompareType int

CompareType compare type

const (
	CompareTypeSequence CompareType = iota
	CompareTypeConsistent
)

CompareType defines

type FilterParams added in v0.0.3

type FilterParams struct {
	Names []string
	Type  CompareType
}

FilterParams filter params

type FilterRepo

type FilterRepo interface {
	// Set compare timeout: must be above zero.
	SetCompareTimeout(time.Duration) error
	// add a compare function : CompareFunc
	AddCompareFunc(name string, cf CompareFunc)
	// remove a compare funcation by name
	RemoveCompareFunc(name string)
	// get compare function
	GetCompareFunc(name string) CompareFunc
	// compare input values and filter values
	Compare(filter *FilterParams, input, target FilterValues) (bool, error)
}

FilterRepo filter repo

func New added in v0.0.3

func New() FilterRepo

New generate an new target filter

type FilterValues added in v0.0.3

type FilterValues map[string]interface{}

FilterValues type map[string]interface{}

Jump to

Keyboard shortcuts

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