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}