MCPcopy Create free account
hub / github.com/HDT3213/rdb / readListPackZSet

Method readListPackZSet

core/zset.go:69–99  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

67}
68
69func (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
101func (enc *Encoder) WriteZSetObject(key string, entries []*model.ZSetEntry, options ...interface{}) error {
102 err := enc.beforeWriteObject(options...)

Callers 1

readObjectMethod · 0.95

Calls 4

readStringMethod · 0.95
readListPackLengthFunction · 0.85
unsafeBytes2StrFunction · 0.70

Tested by

no test coverage detected