criteria

package
v0.10.0 Latest Latest
Warning

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

Go to latest
Published: Jan 29, 2026 License: MIT Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AndCriteria

type AndCriteria[T any] struct {
	// contains filtered or unexported fields
}

AndCriteria represents a logical AND operation between multiple criteria

func NewAndCriteria

func NewAndCriteria[T any](criteria, otherCriteria Criteria[T]) *AndCriteria[T]

NewAndCriteria creates a new AND criteria combining two criteria

func (*AndCriteria[T]) MeetsCriteria

func (ac *AndCriteria[T]) MeetsCriteria(entities []T) []T

MeetsCriteria returns entities that meet both criteria

type ComparisonFunctions

type ComparisonFunctions[T any] struct{}

ComparisonFunctions provides type-safe comparison functions

func (ComparisonFunctions[T]) Equal

func (ComparisonFunctions[T]) Equal() func(T, T) bool

Equal returns a comparison function for equality

func (ComparisonFunctions[T]) NotEqual

func (ComparisonFunctions[T]) NotEqual() func(T, T) bool

NotEqual returns a comparison function for inequality

type Criteria

type Criteria[T any] interface {
	// MeetsCriteria checks if the given entities meet this criteria
	MeetsCriteria(entities []T) []T
}

Criteria defines the interface for all criteria implementations

type CriteriaBuilder

type CriteriaBuilder[T comparable] struct {
	// contains filtered or unexported fields
}

CriteriaBuilder provides a fluent interface for building complex criteria

func NewCriteriaBuilder

func NewCriteriaBuilder[T comparable]() *CriteriaBuilder[T]

NewCriteriaBuilder creates a new criteria builder

func (*CriteriaBuilder[T]) And

func (cb *CriteriaBuilder[T]) And(criteria Criteria[T]) *CriteriaBuilder[T]

And adds an AND criteria

func (*CriteriaBuilder[T]) Build

func (cb *CriteriaBuilder[T]) Build() Criteria[T]

Build returns the final criteria

func (*CriteriaBuilder[T]) Not

func (cb *CriteriaBuilder[T]) Not() *CriteriaBuilder[T]

Not wraps the current criteria in a NOT criteria

func (*CriteriaBuilder[T]) Or

func (cb *CriteriaBuilder[T]) Or(criteria Criteria[T]) *CriteriaBuilder[T]

Or adds an OR criteria

func (*CriteriaBuilder[T]) WithCriteria

func (cb *CriteriaBuilder[T]) WithCriteria(criteria Criteria[T]) *CriteriaBuilder[T]

WithCriteria sets the base criteria

type FieldCriteria

type FieldCriteria[T any, F any] struct {
	// contains filtered or unexported fields
}

FieldCriteria provides a generic way to filter based on field values using a field accessor function

func NewFieldCriteria

func NewFieldCriteria[T any, F any](fieldAccessor func(T) F, value F, compareFn func(F, F) bool) *FieldCriteria[T, F]

NewFieldCriteria creates a new criteria that filters based on a field value

func (*FieldCriteria[T, F]) MeetsCriteria

func (fc *FieldCriteria[T, F]) MeetsCriteria(entities []T) []T

MeetsCriteria returns entities where the specified field meets the comparison criteria

type NotCriteria

type NotCriteria[T any] struct {
	// contains filtered or unexported fields
}

NotCriteria represents a logical NOT operation for a criteria

func NewNotCriteria

func NewNotCriteria[T any](criteria Criteria[T]) *NotCriteria[T]

NewNotCriteria creates a new NOT criteria that inverts the given criteria

func (*NotCriteria[T]) MeetsCriteria

func (nc *NotCriteria[T]) MeetsCriteria(entities []T) []T

MeetsCriteria returns entities that do NOT meet the wrapped criteria

type OrCriteria

type OrCriteria[T comparable] struct {
	// contains filtered or unexported fields
}

OrCriteria represents a logical OR operation between multiple criteria

func NewOrCriteria

func NewOrCriteria[T comparable](criteria, otherCriteria Criteria[T]) *OrCriteria[T]

NewOrCriteria creates a new OR criteria combining two criteria

func (*OrCriteria[T]) MeetsCriteria

func (oc *OrCriteria[T]) MeetsCriteria(entities []T) []T

MeetsCriteria returns entities that meet either criteria (without duplicates)

type OrderedComparisonFunctions

type OrderedComparisonFunctions[T cmp.Ordered] struct{}

OrderedComparisonFunctions provides comparison functions for ordered types

func (OrderedComparisonFunctions[T]) Equal

func (OrderedComparisonFunctions[T]) Equal() func(T, T) bool

Equal returns a comparison function for equality

func (OrderedComparisonFunctions[T]) GreaterThan

func (OrderedComparisonFunctions[T]) GreaterThan() func(T, T) bool

GreaterThan returns a comparison function for greater than

func (OrderedComparisonFunctions[T]) GreaterThanOrEqual

func (OrderedComparisonFunctions[T]) GreaterThanOrEqual() func(T, T) bool

GreaterThanOrEqual returns a comparison function for greater than or equal

func (OrderedComparisonFunctions[T]) LessThan

func (OrderedComparisonFunctions[T]) LessThan() func(T, T) bool

LessThan returns a comparison function for less than

func (OrderedComparisonFunctions[T]) LessThanOrEqual

func (OrderedComparisonFunctions[T]) LessThanOrEqual() func(T, T) bool

LessThanOrEqual returns a comparison function for less than or equal

func (OrderedComparisonFunctions[T]) NotEqual

func (OrderedComparisonFunctions[T]) NotEqual() func(T, T) bool

NotEqual returns a comparison function for inequality

type PredicateCriteria

type PredicateCriteria[T any] struct {
	// contains filtered or unexported fields
}

PredicateCriteria allows using a custom function as criteria

func NewPredicateCriteria

func NewPredicateCriteria[T any](predicate func(T) bool) *PredicateCriteria[T]

NewPredicateCriteria creates a new criteria based on a predicate function

func (*PredicateCriteria[T]) MeetsCriteria

func (pc *PredicateCriteria[T]) MeetsCriteria(entities []T) []T

MeetsCriteria returns entities that satisfy the predicate function

type StringComparisonFunctions

type StringComparisonFunctions struct{}

StringComparisonFunctions provides string-specific comparison functions

func (StringComparisonFunctions) Contains

func (StringComparisonFunctions) Contains() func(string, string) bool

Contains returns a comparison function that checks if the field contains the expected substring

func (StringComparisonFunctions) EqualFold

func (StringComparisonFunctions) EqualFold() func(string, string) bool

EqualFold returns a comparison function for case-insensitive string equality

func (StringComparisonFunctions) HasPrefix

func (StringComparisonFunctions) HasPrefix() func(string, string) bool

HasPrefix returns a comparison function that checks if the field starts with the expected prefix

func (StringComparisonFunctions) HasSuffix

func (StringComparisonFunctions) HasSuffix() func(string, string) bool

HasSuffix returns a comparison function that checks if the field ends with the expected suffix

Jump to

Keyboard shortcuts

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