encodeCursor encodes a unique identifier (UID) into a opaque pagination cursor by serializing a pageToken struct.
(uid string)
| 1543 | // encodeCursor encodes a unique identifier (UID) into a opaque pagination cursor |
| 1544 | // by serializing a pageToken struct. |
| 1545 | func encodeCursor(uid string) (string, error) { |
| 1546 | var buf bytes.Buffer |
| 1547 | token := pageToken{LastUID: uid} |
| 1548 | encoder := gob.NewEncoder(&buf) |
| 1549 | if err := encoder.Encode(token); err != nil { |
| 1550 | return "", fmt.Errorf("failed to encode page token: %w", err) |
| 1551 | } |
| 1552 | return base64.URLEncoding.EncodeToString(buf.Bytes()), nil |
| 1553 | } |
| 1554 | |
| 1555 | // decodeCursor decodes an opaque pagination cursor into the original pageToken struct. |
| 1556 | func decodeCursor(cursor string) (*pageToken, error) { |