Mike Schwörer
54b0d6701d
All checks were successful
Build Docker and Deploy / Run goext test-suite (push) Successful in 2m49s
38 lines
484 B
Go
38 lines
484 B
Go
package cursortoken
|
|
|
|
import "strconv"
|
|
|
|
type CTPaginated struct {
|
|
Mode Mode
|
|
Page int
|
|
}
|
|
|
|
func Page(p int) CursorToken {
|
|
return CTPaginated{
|
|
Mode: CTMNormal,
|
|
Page: p,
|
|
}
|
|
}
|
|
|
|
func PageEnd() CursorToken {
|
|
return CTPaginated{
|
|
Mode: CTMEnd,
|
|
Page: 0,
|
|
}
|
|
}
|
|
|
|
func (c CTPaginated) Token() string {
|
|
if c.Mode == CTMStart {
|
|
return "$1"
|
|
}
|
|
if c.Mode == CTMEnd {
|
|
return "$end"
|
|
}
|
|
|
|
return "$" + strconv.Itoa(c.Page)
|
|
}
|
|
|
|
func (c CTPaginated) IsEnd() bool {
|
|
return c.Mode == CTMEnd
|
|
}
|