| // MarkerPage is a stricter Page interface that describes additional functionality required for use with NewMarkerPager. |
| // For convenience, embed the MarkedPageBase struct. |
| type MarkerPage interface { |
| // LastMarker returns the last "marker" value on this page. |
| LastMarker() (string, error) |
| // MarkerPageBase is a page in a collection that's paginated by "limit" and "marker" query parameters. |
| type MarkerPageBase struct { |
| // Owner is a reference to the embedding struct. |
| // NextPageURL generates the URL for the page of results after this one. |
| func (current MarkerPageBase) NextPageURL() (string, error) { |
| currentURL := current.URL |
| mark, err := current.Owner.LastMarker() |
| currentURL.RawQuery = q.Encode() |
| return currentURL.String(), nil |
| // GetBody returns the linked page's body. This method is needed to satisfy the |
| func (current MarkerPageBase) GetBody() interface{} { |