code: func DecodeBytes(b []byte, val interface{}) error {
  	r := bytes.NewReader(b)
  
  	stream := streamPool.Get().(*Stream)
  	defer streamPool.Put(stream)
  
  	stream.Reset(r, uint64(len(b)))
  	if err := stream.Decode(val); err != nil {
  		return err
  	}
  	if r.Len() > 0 {
  		return ErrMoreThanOneValue
  	}
  	return nil
  }
docs: // DecodeBytes parses RLP data from b into val.
  // Please see the documentation of Decode for the decoding rules.
  // The input must contain exactly one value and no trailing data.