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

Method readObject

core/decoder.go:174–384  ·  view source on GitHub ↗
(flag byte, base *model.BaseObject)

Source from the content-addressed store, hash-verified

172}
173
174func (dec *Decoder) readObject(flag byte, base *model.BaseObject) (model.RedisObject, error) {
175 base.Encoding = encodingMap[int(flag)]
176 switch flag {
177 case typeString:
178 bs, err := dec.readString()
179 if err != nil {
180 return nil, err
181 }
182 return &model.StringObject{
183 BaseObject: base,
184 Value: bs,
185 }, nil
186 case typeList:
187 list, err := dec.readList()
188 if err != nil {
189 return nil, err
190 }
191 return &model.ListObject{
192 BaseObject: base,
193 Values: list,
194 }, nil
195 case typeSet:
196 set, err := dec.readSet()
197 if err != nil {
198 return nil, err
199 }
200 return &model.SetObject{
201 BaseObject: base,
202 Members: set,
203 }, nil
204 case typeSetIntSet:
205 set, extra, err := dec.readIntSet()
206 if err != nil {
207 return nil, err
208 }
209 base.Extra = extra
210 return &model.SetObject{
211 BaseObject: base,
212 Members: set,
213 }, nil
214 case typeHash:
215 hash, err := dec.readHashMap()
216 if err != nil {
217 return nil, err
218 }
219 return &model.HashObject{
220 BaseObject: base,
221 Hash: hash,
222 }, nil
223 case typeListZipList:
224 list, err := dec.readZipList()
225 if err != nil {
226 return nil, err
227 }
228 return &model.ListObject{
229 BaseObject: base,
230 Values: list,
231 }, nil

Callers 1

parseMethod · 0.95

Calls 15

readStringMethod · 0.95
readListMethod · 0.95
readSetMethod · 0.95
readIntSetMethod · 0.95
readHashMapMethod · 0.95
readZipListMethod · 0.95
readQuickListMethod · 0.95
readQuickList2Method · 0.95
readZipMapHashMethod · 0.95
readZipListHashMethod · 0.95
readListPackHashMethod · 0.95
readZSetMethod · 0.95

Tested by

no test coverage detected