34 lines
420 B
Go
34 lines
420 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)
|
||
|
}
|