package navigation // PaginationBinder is an interface that everything that every type that wants to bind to an pagination component must implement. type PaginationBinder interface { Page() int // Page returns the current page, as a 1-based index. A value of 0 means there is no active page. Pages() int // Pages returns the total number of pages. SetPage(page int) // SetPage changes the current page as a 1-based index. A value of 0 means there is no active page. } // PaginationInfo implements the PaginationBinder interface and represents the current state of a pagination component. type PaginationInfo struct { CurrentPage int // The current page as a 1-based index. A value of 0 means there is no current page. TotalPages int // The number of total pages. } func (p *PaginationInfo) Page() int { return p.CurrentPage } func (p *PaginationInfo) Pages() int { return p.TotalPages } func (p *PaginationInfo) SetPage(page int) { p.CurrentPage = page }