Documentation
¶
Index ¶
- type AndCriteria
- type ComparisonFunctions
- type Criteria
- type CriteriaBuilder
- func (cb *CriteriaBuilder[T]) And(criteria Criteria[T]) *CriteriaBuilder[T]
- func (cb *CriteriaBuilder[T]) Build() Criteria[T]
- func (cb *CriteriaBuilder[T]) Not() *CriteriaBuilder[T]
- func (cb *CriteriaBuilder[T]) Or(criteria Criteria[T]) *CriteriaBuilder[T]
- func (cb *CriteriaBuilder[T]) WithCriteria(criteria Criteria[T]) *CriteriaBuilder[T]
- type FieldCriteria
- type NotCriteria
- type OrCriteria
- type OrderedComparisonFunctions
- func (OrderedComparisonFunctions[T]) Equal() func(T, T) bool
- func (OrderedComparisonFunctions[T]) GreaterThan() func(T, T) bool
- func (OrderedComparisonFunctions[T]) GreaterThanOrEqual() func(T, T) bool
- func (OrderedComparisonFunctions[T]) LessThan() func(T, T) bool
- func (OrderedComparisonFunctions[T]) LessThanOrEqual() func(T, T) bool
- func (OrderedComparisonFunctions[T]) NotEqual() func(T, T) bool
- type PredicateCriteria
- type StringComparisonFunctions
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 ¶
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 ¶
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