query

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Dec 20, 2024 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrOrBeforeAnyConditions   = errors.New(".Or() before any condition not supported, add any condition before .Or()")
	ErrNotOpenBracket          = errors.New(".Not().OpenBracket() not supported")
	ErrCloseBracketWithoutOpen = errors.New("close bracket without open")
	ErrInvalidBracketBalance   = errors.New("invalid bracket balance: has not closed bracket")
)

Functions

func Cast added in v0.2.0

func Cast[From, To any](v From) (To, error)

Cast casts a value to a different type. If cast fails, an CastError is returned.

Types

type AddWhereOption added in v0.0.3

type AddWhereOption[R record.Record] struct {
	Cmp where.FieldComparator[R]
}

func (AddWhereOption[R]) Apply added in v0.0.3

func (o AddWhereOption[R]) Apply(b any)

type BracketsOption added in v0.2.0

type BracketsOption []BuilderOption

func (BracketsOption) Apply added in v0.2.0

func (o BracketsOption) Apply(b any)

type Builder

type Builder interface {
	Limit(limitItems int)
	Offset(startOffset int)
	Not()
	Or()
	OpenBracket()
	CloseBracket()

	// Append apply new options to builder
	Append(options ...BuilderOption)

	// Error save error to builder
	Error(err error)
}

type BuilderGeneric added in v0.2.0

type BuilderGeneric[R record.Record] interface {
	Builder

	AddWhere(cmp where.FieldComparator[R])
	Sort(by sort.ByWithOrder[R])

	// OnIteration registers a callback to be called for each record before sorting and applying offset/limits
	// but after applying WHERE conditions
	OnIteration(cb func(item R))

	MakeCopy() BuilderGeneric[R]

	// Query return build Query
	Query() Query[R]
}

func NewBuilder

func NewBuilder[R record.Record](options ...BuilderOption) BuilderGeneric[R]

type BuilderOption added in v0.0.3

type BuilderOption interface {
	Apply(b any)
}

func Brackets added in v0.2.0

func Brackets(opts ...BuilderOption) BuilderOption

func CloseBracket added in v0.0.3

func CloseBracket() BuilderOption

func Error added in v0.2.0

func Error(err error) BuilderOption

func Limit added in v0.0.3

func Limit(limitItems int) BuilderOption

func Not added in v0.0.3

func Not() BuilderOption

func Offset added in v0.0.3

func Offset(startOffset int) BuilderOption

func OpenBracket added in v0.0.3

func OpenBracket() BuilderOption

func Sort added in v0.0.3

func Where added in v0.0.3

func Where[R record.Record, T record.LessComparable](
	getter record.ComparableGetter[R, T],
	condition where.ComparatorType,
	value ...T,
) BuilderOption

func WhereAny added in v0.2.0

func WhereAny[R record.Record](
	getter record.GetterInterface[R, any],
	condition where.ComparatorType,
	values ...any,
) BuilderOption

func WhereBool added in v0.0.3

func WhereBool[R record.Record](
	getter record.BoolGetter[R],
	condition where.ComparatorType,
	value ...bool,
) BuilderOption

func WhereMap added in v0.0.3

func WhereMap[R record.Record, K comparable, V any](
	getter record.MapGetter[R, K, V],
	condition where.ComparatorType,
	value ...any,
) BuilderOption

func WhereSet added in v0.0.3

func WhereSet[R record.Record, T comparable](
	getter record.SetGetter[R, T],
	condition where.ComparatorType,
	value ...T,
) BuilderOption

func WhereStringRegexp added in v0.0.3

func WhereStringRegexp[R record.Record](
	getter record.ComparableGetter[R, string],
	value *regexp.Regexp,
) BuilderOption

type CastError added in v0.2.0

type CastError[A, B any] struct {
	Expected A
	Actual   B
}

func (CastError[A, B]) Error added in v0.2.0

func (e CastError[A, B]) Error() string

type CloseBracketOption added in v0.0.3

type CloseBracketOption struct{}

func (CloseBracketOption) Apply added in v0.0.3

func (CloseBracketOption) Apply(b any)

type ErrorOption added in v0.2.0

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

func (ErrorOption) Apply added in v0.2.0

func (o ErrorOption) Apply(b any)

type GetterError added in v0.2.0

type GetterError struct {
	Field record.Field
	Err   error
}

func (GetterError) Error added in v0.2.0

func (e GetterError) Error() string

func (GetterError) Unwrap added in v0.2.0

func (e GetterError) Unwrap() error

type LimitOption added in v0.0.3

type LimitOption int

func (LimitOption) Apply added in v0.0.3

func (o LimitOption) Apply(b any)

type NotOption added in v0.0.3

type NotOption struct{}

func (NotOption) Apply added in v0.0.3

func (NotOption) Apply(b any)

type OffsetOption added in v0.0.3

type OffsetOption int

func (OffsetOption) Apply added in v0.0.3

func (o OffsetOption) Apply(b any)

type OnIterationOption added in v0.0.3

type OnIterationOption[R record.Record] func(item R)

func OnIteration added in v0.0.3

func OnIteration[R record.Record](cb func(item R)) OnIterationOption[R]

func (OnIterationOption[R]) Apply added in v0.0.3

func (o OnIterationOption[R]) Apply(b any)

type OpenBracketOption added in v0.0.3

type OpenBracketOption struct{}

func (OpenBracketOption) Apply added in v0.0.3

func (OpenBracketOption) Apply(b any)

type OrOption added in v0.0.3

type OrOption struct{}

func Or added in v0.0.3

func Or() OrOption

func (OrOption) Apply added in v0.0.3

func (OrOption) Apply(b any)

type Query

type Query[R record.Record] interface {
	Conditions() where.Conditions[R]
	Sorting() []sort.ByWithOrder[R]
	Limit() (count int, set bool)
	Offset() int
	OnIterationCallback() *func(item R)
	Error() error
}

type SortOption added in v0.0.3

type SortOption[R record.Record] struct {
	// contains filtered or unexported fields
}

func (SortOption[R]) Apply added in v0.0.3

func (o SortOption[R]) Apply(b any)

Jump to

Keyboard shortcuts

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