reads a string prefixed by a short of its length
()
| 53 | |
| 54 | // reads a string prefixed by a short of its length |
| 55 | func (r StaticReader) readString() (string, error) { |
| 56 | length, err := r.readShort() |
| 57 | if err != nil { |
| 58 | return "", err |
| 59 | } |
| 60 | if length < 0 { |
| 61 | return "", fmt.Errorf("negative length for make (read string)") |
| 62 | } |
| 63 | var data = make([]byte, length) |
| 64 | |
| 65 | if _, err := r.r.Read(data); err != nil { |
| 66 | return "", err |
| 67 | } |
| 68 | |
| 69 | return unsafe.String(unsafe.SliceData(data), len(data)), nil //*(*string)(unsafe.Pointer(&data)), nil |
| 70 | } |
| 71 | |
| 72 | func (r StaticReader) ReadRoot(withName bool) (typeId byte, name string, err error) { |
| 73 | typeId, err = r.readByte() |