()
| 67 | } |
| 68 | |
| 69 | func (dec *Decoder) readListPackZSet() ([]*model.ZSetEntry, *model.ListpackDetail, error) { |
| 70 | buf, err := dec.readString() |
| 71 | if err != nil { |
| 72 | return nil, nil, err |
| 73 | } |
| 74 | cursor := 0 |
| 75 | size := readListPackLength(buf, &cursor) |
| 76 | entries := make([]*model.ZSetEntry, 0, size) |
| 77 | for i := 0; i < size; i += 2 { |
| 78 | member, err := dec.readListPackEntryAsString(buf, &cursor) |
| 79 | if err != nil { |
| 80 | return nil, nil, err |
| 81 | } |
| 82 | scoreLiteral, err := dec.readListPackEntryAsString(buf, &cursor) |
| 83 | if err != nil { |
| 84 | return nil, nil, err |
| 85 | } |
| 86 | score, err := strconv.ParseFloat(unsafeBytes2Str(scoreLiteral), 64) |
| 87 | if err != nil { |
| 88 | return nil, nil, err |
| 89 | } |
| 90 | entries = append(entries, &model.ZSetEntry{ |
| 91 | Member: unsafeBytes2Str(member), |
| 92 | Score: score, |
| 93 | }) |
| 94 | } |
| 95 | detail := &model.ListpackDetail{ |
| 96 | RawStringSize: len(buf), |
| 97 | } |
| 98 | return entries, detail, nil |
| 99 | } |
| 100 | |
| 101 | func (enc *Encoder) WriteZSetObject(key string, entries []*model.ZSetEntry, options ...interface{}) error { |
| 102 | err := enc.beforeWriteObject(options...) |
no test coverage detected