This commit is contained in:
tamakyi
2026-09-08 10:10:44 +08:00
commit 2ed27dd55e
288 changed files with 67061 additions and 0 deletions
+46
View File
@@ -0,0 +1,46 @@
// Copyright 2022 E99p1ant. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package dbutil
var (
DefaultPageSize = 20
MaxDefaultPageSize = 100
)
type Pagination struct {
Page int
PageSize int
}
// LimitOffset returns LIMIT and OFFSET parameter for SQL.
// The first page is page 0.
func (p Pagination) LimitOffset() (limit, offset int) {
page := p.Page
pageSize := p.PageSize
if page <= 0 {
page = 1
}
if pageSize < 1 {
pageSize = DefaultPageSize
}
return pageSize, (page - 1) * pageSize
}
type Cursor struct {
Value interface{}
PageSize int
}
func (p Cursor) Limit() int {
pageSize := p.PageSize
if pageSize < 1 {
pageSize = DefaultPageSize
}
if pageSize > MaxDefaultPageSize {
pageSize = MaxDefaultPageSize
}
return pageSize
}