EncodeMsg encodes the message to the writer.
(writer *msgp.Writer)
| 2698 | |
| 2699 | // EncodeMsg encodes the message to the writer. |
| 2700 | func (s Uint32Sorted) EncodeMsg(writer *msgp.Writer) error { |
| 2701 | if s == nil { |
| 2702 | return writer.WriteNil() |
| 2703 | } |
| 2704 | err := writer.WriteArrayHeader(uint32(len(s))) |
| 2705 | if err != nil { |
| 2706 | return err |
| 2707 | } |
| 2708 | keys := make([]uint32, 0, len(s)) |
| 2709 | for k := range s { |
| 2710 | keys = append(keys, k) |
| 2711 | } |
| 2712 | slices.SortFunc(keys, func(a, b uint32) int { |
| 2713 | if a < b { |
| 2714 | return -1 |
| 2715 | } |
| 2716 | return 1 |
| 2717 | }) |
| 2718 | |
| 2719 | for _, k := range keys { |
| 2720 | err = writer.WriteUint32(k) |
| 2721 | if err != nil { |
| 2722 | return err |
| 2723 | } |
| 2724 | } |
| 2725 | return nil |
| 2726 | } |
| 2727 | |
| 2728 | // MarshalMsg encodes the message to the bytes. |
| 2729 | func (s Uint32Sorted) MarshalMsg(bytes []byte) ([]byte, error) { |