internal/pagination/pagination.go (view raw)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | package pagination
type Pagination struct {
total uint64
From int
Size,
Current,
Prev,
Next int
Needed bool
}
func New(page int, pageSize int) *Pagination {
return &Pagination{
Current: page,
From: (page - 1) * pageSize,
Size: pageSize,
}
}
func (p *Pagination) SetResults(total uint64) {
p.total = total
p.Needed = p.total > uint64(p.Size)
if uint64(p.Current*p.Size) <= p.total {
p.Next = p.Current + 1
p.Prev = p.Current - 1
}
}
|