query

package
v0.3.3 Latest Latest
Warning

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

Go to latest
Published: Jan 15, 2026 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 Builder added in v0.3.2

type Builder struct {
	// contains filtered or unexported fields
}

Builder offers a fluent API to collect query options without manually constructing Field/Logical types at every call site.

func NewBuilder added in v0.3.2

func NewBuilder() *Builder

NewBuilder returns an empty builder.

func (*Builder) AndGroup added in v0.3.2

func (b *Builder) AndGroup(fn func(*Builder)) *Builder

AndGroup creates a logical AND group using the nested builder.

func (*Builder) Asc added in v0.3.2

func (b *Builder) Asc(field string) *Builder

Asc adds an ascending sort clause.

func (*Builder) Desc added in v0.3.2

func (b *Builder) Desc(field string) *Builder

Desc adds a descending sort clause.

func (*Builder) Distinct added in v0.3.2

func (b *Builder) Distinct(field string) *Builder

Distinct adds a distinct clause.

func (*Builder) Eq added in v0.3.2

func (b *Builder) Eq(field string, value interface{}) *Builder

Eq adds an equality filter for the provided field.

func (*Builder) Gt added in v0.3.2

func (b *Builder) Gt(field string, value interface{}) *Builder

Gt adds a greater-than filter.

func (*Builder) Gte added in v0.3.2

func (b *Builder) Gte(field string, value interface{}) *Builder

Gte adds a greater-or-equal filter.

func (*Builder) Lt added in v0.3.2

func (b *Builder) Lt(field string, value interface{}) *Builder

Lt adds a less-than filter.

func (*Builder) Lte added in v0.3.2

func (b *Builder) Lte(field string, value interface{}) *Builder

Lte adds a less-or-equal filter.

func (*Builder) Ne added in v0.3.2

func (b *Builder) Ne(field string, value interface{}) *Builder

Ne adds a not-equal filter.

func (*Builder) NotGroup added in v0.3.2

func (b *Builder) NotGroup(fn func(*Builder)) *Builder

NotGroup negates the nested group.

func (*Builder) Options added in v0.3.2

func (b *Builder) Options() []Option

Options returns the accumulated options.

func (*Builder) OrGroup added in v0.3.2

func (b *Builder) OrGroup(fn func(*Builder)) *Builder

OrGroup creates a logical OR group using the nested builder.

func (*Builder) Where added in v0.3.2

func (b *Builder) Where(opts ...Option) *Builder

Where appends simple filters or logical options directly.

type Distinct added in v0.2.8

type Distinct struct {
	Field Field
}

func DistinctField added in v0.3.2

func DistinctField(field string) *Distinct

DistinctField helps creating a distinct option without constructing Field manually.

func (Distinct) OptionType added in v0.2.8

func (d Distinct) OptionType() OptionType

type Field

type Field string

func (Field) Ascending

func (f Field) Ascending() *Order

func (Field) Descending

func (f Field) Descending() *Order

func (Field) Distinct added in v0.2.8

func (f Field) Distinct() *Distinct

func (Field) Equal

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

func (Field) GreaterOrEqual

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

func (Field) GreaterThan

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

func (Field) LessOrEqual

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

func (Field) LessThan

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

func (Field) NotEqual

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

type FieldMapper

type FieldMapper map[Field]string

func (*FieldMapper) Get

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

func (*FieldMapper) Map added in v0.2.10

func (m *FieldMapper) Map(fields []Field) []string

type Filter

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

func Eq added in v0.3.2

func Eq(field string, value interface{}) *Filter

Eq creates an equality filter without manually constructing Field.

func Gt added in v0.3.2

func Gt(field string, value interface{}) *Filter

Gt creates a greater-than filter.

func Gte added in v0.3.2

func Gte(field string, value interface{}) *Filter

Gte creates a greater-or-equal filter.

func Lt added in v0.3.2

func Lt(field string, value interface{}) *Filter

Lt creates a less-than filter.

func Lte added in v0.3.2

func Lte(field string, value interface{}) *Filter

Lte creates a less-or-equal filter.

func Ne added in v0.3.2

func Ne(field string, value interface{}) *Filter

Ne creates a not-equal filter.

func (*Filter) OptionType

func (f *Filter) OptionType() OptionType

type Logical

type Logical struct {
	Operator LogicalOperator
	Filters  []Option // Filter or Logical
}

func And

func And(filters ...Option) *Logical

func Not

func Not(filter Option) *Logical

func Or

func Or(filters ...Option) *Logical

func (*Logical) OptionType

func (l *Logical) OptionType() OptionType

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"
)

type Option

type Option interface {
	OptionType() OptionType
}

Option is an interface.

type OptionType

type OptionType int
const (
	OptionTypeFilter OptionType = iota
	OptionTypeLogical
	OptionTypeSort
	OptionTypeDistinct
)

type Order

type Order struct {
	Field Field
	Order SortOrder
}

func Asc added in v0.3.2

func Asc(field string) *Order

Asc creates an ascending order option without constructing Field manually.

func Desc added in v0.3.2

func Desc(field string) *Order

Desc creates a descending order option without constructing Field manually.

func (Order) OptionType

func (o Order) OptionType() OptionType

type QueryBuilder

type QueryBuilder[T any] interface {
	Build(options ...Option) T
	WithFieldMapper(mapper FieldMapper) QueryBuilder[T]
}

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

type SortOrder

type SortOrder int
const (
	Ascending SortOrder = iota
	Descending
)

Jump to

Keyboard shortcuts

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