EncodeMsg encodes the message to the writer.
(writer *msgp.Writer)
| 418 | |
| 419 | // EncodeMsg encodes the message to the writer. |
| 420 | func (s IntSorted) EncodeMsg(writer *msgp.Writer) error { |
| 421 | if s == nil { |
| 422 | return writer.WriteNil() |
| 423 | } |
| 424 | err := writer.WriteArrayHeader(uint32(len(s))) |
| 425 | if err != nil { |
| 426 | return err |
| 427 | } |
| 428 | keys := make([]int, 0, len(s)) |
| 429 | for k := range s { |
| 430 | keys = append(keys, k) |
| 431 | } |
| 432 | slices.SortFunc(keys, func(a, b int) int { |
| 433 | if a < b { |
| 434 | return -1 |
| 435 | } |
| 436 | return 1 |
| 437 | }) |
| 438 | |
| 439 | for _, k := range keys { |
| 440 | err = writer.WriteInt(k) |
| 441 | if err != nil { |
| 442 | return err |
| 443 | } |
| 444 | } |
| 445 | return nil |
| 446 | } |
| 447 | |
| 448 | // MarshalMsg encodes the message to the bytes. |
| 449 | func (s IntSorted) MarshalMsg(bytes []byte) ([]byte, error) { |