decode if obj has been existed , stop parse
(b []byte)
| 272 | |
| 273 | // decode if obj has been existed , stop parse |
| 274 | func (s *String) decode(b []byte) error { |
| 275 | obj, err := DecodeObject(b) |
| 276 | if err != nil { |
| 277 | return err |
| 278 | } |
| 279 | |
| 280 | if IsExpired(obj, Now()) { |
| 281 | return ErrKeyNotFound |
| 282 | } |
| 283 | |
| 284 | if obj.Type != ObjectString { |
| 285 | return ErrTypeMismatch |
| 286 | } |
| 287 | |
| 288 | if obj.Encoding != ObjectEncodingRaw { |
| 289 | return ErrTypeMismatch |
| 290 | } |
| 291 | s.Meta.Object = *obj |
| 292 | if len(b) >= ObjectEncodingLength { |
| 293 | s.Meta.Value = b[ObjectEncodingLength:] |
| 294 | } |
| 295 | return nil |
| 296 | } |
no test coverage detected