filter

package
v0.2.6 Latest Latest
Warning

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

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

Documentation

Index

Constants

This section is empty.

Variables

View Source
var EmptyFieldMapper = make(FieldMapper)

Functions

This section is empty.

Types

type Field

type Field string

func (Field) Equal

func (f Field) Equal(value interface{}) *FieldFilter

func (Field) GreaterOrEqual

func (f Field) GreaterOrEqual(value interface{}) *FieldFilter

func (Field) GreaterThan

func (f Field) GreaterThan(value interface{}) *FieldFilter

func (Field) LessOrEqual

func (f Field) LessOrEqual(value interface{}) *FieldFilter

func (Field) LessThan

func (f Field) LessThan(value interface{}) *FieldFilter

func (Field) NotEqual

func (f Field) NotEqual(value interface{}) *FieldFilter

type FieldFilter

type FieldFilter struct {
	Field    Field
	Operator Operator
	Value    interface{}
}

func (*FieldFilter) FilterType

func (f *FieldFilter) FilterType() FilterType

type FieldMapper

type FieldMapper map[Field]string

func (*FieldMapper) Get

func (m *FieldMapper) Get(field Field) string

type Filter

type Filter interface {
	FilterType() FilterType
}

Filter is an interface.

type FilterBuilder

type FilterBuilder[T any] interface {
	BuildFilter(filters ...Filter) T
	WithFieldMapper(mapper FieldMapper) FilterBuilder[T]
}

FilterBuilder is a function that takes a filter and returns a new filter

type FilterType

type FilterType int
const (
	FilterTypeField FilterType = iota
	FilterTypeLogical
)

type LogicalFilter

type LogicalFilter struct {
	Operator LogicalOperator
	Filters  []Filter // FieldFilter or LogicalFilter
}

func And

func And(filters ...Filter) *LogicalFilter

func Not

func Not(filter Filter) *LogicalFilter

func Or

func Or(filters ...Filter) *LogicalFilter

func (*LogicalFilter) FilterType

func (l *LogicalFilter) FilterType() FilterType

type LogicalOperator

type LogicalOperator string
const (
	OpAnd LogicalOperator = "and"
	OpOr  LogicalOperator = "or"
	OpNot LogicalOperator = "not"
)

type Operator

type Operator string
const (
	OpEqual          Operator = "eq"
	OpNotEqual       Operator = "ne"
	OpGreater        Operator = "gt"
	OpGreaterOrEqual Operator = "gte"
	OpLess           Operator = "lt"
	OpLessOrEqual    Operator = "lte"
)

Jump to

Keyboard shortcuts

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