pager_options.gno
0.64 Kb ยท 33 lines
1package pager
2
3import "strings"
4
5const (
6 DefaultPageSize = 50
7 DefaultPageQueryParam = "page"
8)
9
10// PagerOption configures the pager.
11type PagerOption func(*Pager)
12
13// WithPageSize assigns a page size to a pager.
14func WithPageSize(size int) PagerOption {
15 return func(p *Pager) {
16 if size < 1 {
17 p.pageSize = DefaultPageSize
18 } else {
19 p.pageSize = size
20 }
21 }
22}
23
24// WithPageQueryParam assigns the name of the URL query param for the page value.
25func WithPageQueryParam(name string) PagerOption {
26 return func(p *Pager) {
27 name = strings.TrimSpace(name)
28 if name == "" {
29 name = DefaultPageQueryParam
30 }
31 p.pageQueryParam = name
32 }
33}