(flag byte, base *model.BaseObject)
| 172 | } |
| 173 | |
| 174 | func (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 |
no test coverage detected