Documentation
¶
Index ¶
- func AllColsInList(cols []string, lists ...[]string) bool
- func Delete(from, to int) deleteRule
- func EditCallback(rule EditRule, callbacks ...func(start, end int, before, after string) error) callbackRule
- func EditString(s string, rules ...EditRule) (string, error)
- func EditStringSegment(s string, from, to int, rules ...EditRule) (string, error)
- func FilterNonZero[T comparable](s []T) []T
- func FirstNonEmpty[T comparable, Ts ~[]T](slice Ts) T
- func GetColumnValues[T any](mapping mappings.Mapping, filter []string, objs ...T) ([]string, [][]bob.Expression, error)
- func InList[T comparable](s []T, val T) bool
- func Insert(pos int, content string) insertRule
- func InsertFromFunc(pos int, content func() string) insertRule
- func MappingCols(m mappings.Mapping, table ...string) orm.Columns
- func RandInt() int64
- func RemoveDuplicates[T comparable, Ts ~[]T](slice Ts) Ts
- func Replace(from, to int, content string) replaceRule
- func ReplaceFromFunc(from, to int, content func() string) replaceRule
- func SliceMatch[T comparable, Ts ~[]T](a, b Ts) bool
- func ToAnySlice[T any, Ts ~[]T](slice Ts) []any
- type AfterPreloader
- type EditRule
- type Loader
- type OutOfBoundsError
- type PreloadAs
- type PreloadExcept
- type PreloadOnly
- type PreloadOption
- type PreloadSettings
- type PreloadWhere
- type Preloadable
- type Preloader
- type RuleType
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AllColsInList ¶ added in v0.29.0
Check if any one of the lists contains all the columns
func EditCallback ¶ added in v0.32.0
func EditStringSegment ¶ added in v0.32.0
func FilterNonZero ¶ added in v0.15.0
func FilterNonZero[T comparable](s []T) []T
func FirstNonEmpty ¶ added in v0.15.0
func FirstNonEmpty[T comparable, Ts ~[]T](slice Ts) T
func GetColumnValues ¶ added in v0.3.1
func GetColumnValues[T any](mapping mappings.Mapping, filter []string, objs ...T) ([]string, [][]bob.Expression, error)
Get the values for non generated columns
func InList ¶ added in v0.29.0
func InList[T comparable](s []T, val T) bool
func InsertFromFunc ¶ added in v0.32.0
func MappingCols ¶ added in v0.23.0
func RemoveDuplicates ¶ added in v0.29.0
func RemoveDuplicates[T comparable, Ts ~[]T](slice Ts) Ts
func ReplaceFromFunc ¶ added in v0.32.0
func SliceMatch ¶ added in v0.29.0
func SliceMatch[T comparable, Ts ~[]T](a, b Ts) bool
func ToAnySlice ¶ added in v0.15.0
Types ¶
type AfterPreloader ¶ added in v0.13.0
type AfterPreloader struct {
// contains filtered or unexported fields
}
AfterPreloader is embedded in a Preloader to chain loading whenever a preloaded object is scanned, it should be collected with the Collect method The loading functions should be added with AppendLoader later, when this object is called like any other bob.Loader, it calls the appended loaders with the collected objects
func NewAfterPreloader ¶ added in v0.13.0
func NewAfterPreloader[T any, Ts ~[]T]() *AfterPreloader
NewAfterPreloader returns a new AfterPreloader based on the given types
func (*AfterPreloader) AppendLoader ¶ added in v0.13.0
func (a *AfterPreloader) AppendLoader(fs ...bob.Loader)
func (*AfterPreloader) Collect ¶ added in v0.13.0
func (a *AfterPreloader) Collect(v any) error
type EditRule ¶ added in v0.32.0
type EditRule interface {
// contains filtered or unexported methods
}
type Loader ¶ added in v0.19.0
Loader builds a query mod that makes an extra query after the object is retrieved it can be used to prevent N+1 queries by loading relationships in batches
func (Loader[Q]) Apply ¶ added in v0.19.0
func (l Loader[Q]) Apply(q Q)
Apply satisfies the bob.Mod[Q] interface
func (Loader[Q]) ModifyPreloadSettings ¶ added in v0.19.0
func (l Loader[Q]) ModifyPreloadSettings(s *PreloadSettings[Q])
modifyPreloader makes a Loader also work as a mod for a Preloader
type OutOfBoundsError ¶ added in v0.32.0
type OutOfBoundsError int
func (OutOfBoundsError) Error ¶ added in v0.32.0
func (e OutOfBoundsError) Error() string
func (OutOfBoundsError) Is ¶ added in v0.32.0
func (e OutOfBoundsError) Is(target error) bool
type PreloadAs ¶ added in v0.27.0
type PreloadAs[Q loadable] string
func (PreloadAs[Q]) ModifyPreloadSettings ¶ added in v0.27.0
func (o PreloadAs[Q]) ModifyPreloadSettings(el *PreloadSettings[Q])
type PreloadExcept ¶ added in v0.20.0
type PreloadExcept[Q loadable] []string
func (PreloadExcept[Q]) ModifyPreloadSettings ¶ added in v0.20.0
func (e PreloadExcept[Q]) ModifyPreloadSettings(el *PreloadSettings[Q])
type PreloadOnly ¶ added in v0.20.0
type PreloadOnly[Q loadable] []string
func (PreloadOnly[Q]) ModifyPreloadSettings ¶ added in v0.20.0
func (o PreloadOnly[Q]) ModifyPreloadSettings(el *PreloadSettings[Q])
type PreloadOption ¶ added in v0.19.0
type PreloadOption[Q loadable] interface {
ModifyPreloadSettings(*PreloadSettings[Q])
}
type PreloadSettings ¶ added in v0.19.0
type PreloadSettings[Q loadable] struct {
Columns []string
SubLoaders []Preloader[Q]
ExtraLoader *AfterPreloader
Mods [][]preloadfilter
Alias string
}
func NewPreloadSettings ¶ added in v0.19.0
func NewPreloadSettings[T any, Ts ~[]T, Q loadable](cols []string) PreloadSettings[Q]
type PreloadWhere ¶ added in v0.20.0
type PreloadWhere[Q loadable] []preloadfilter
func (PreloadWhere[Q]) ModifyPreloadSettings ¶ added in v0.20.0
func (filters PreloadWhere[Q]) ModifyPreloadSettings(el *PreloadSettings[Q])
type Preloadable ¶ added in v0.19.0
type Preloader ¶ added in v0.19.0
Preloader builds a query mod that modifies the original query to retrieve related fields while it can be used as a queryMod, it does not have any direct effect. if using manually, the ApplyPreload method should be called with the query's context AFTER other mods have been applied
func (Preloader[Q]) Apply ¶ added in v0.19.0
func (l Preloader[Q]) Apply(q Q)
Apply satisfies bob.Mod[*dialect.SelectQuery]. 1. It modifies the query to join the preloading table and the extra columns to retrieve 2. It modifies the mapper to scan the new columns. 3. It calls the original object's Preload method with the loaded object
func (Preloader[Q]) ModifyPreloadSettings ¶ added in v0.19.0
func (l Preloader[Q]) ModifyPreloadSettings(s *PreloadSettings[Q])
modifyPreloader makes a Loader also work as a mod for a Preloader