(r io.Reader)
| 304 | var errSchemaBlobTooLarge = errors.New("schema blob too large") |
| 305 | |
| 306 | func parseSuperset(r io.Reader) (*superset, error) { |
| 307 | buf := pools.BytesBuffer() |
| 308 | defer pools.PutBuffer(buf) |
| 309 | |
| 310 | n, err := io.CopyN(buf, r, MaxSchemaBlobSize+1) |
| 311 | if err != nil && err != io.EOF { |
| 312 | return nil, err |
| 313 | } |
| 314 | if n > MaxSchemaBlobSize { |
| 315 | return nil, errSchemaBlobTooLarge |
| 316 | } |
| 317 | |
| 318 | ss := new(superset) |
| 319 | if err := json.Unmarshal(buf.Bytes(), ss); err != nil { |
| 320 | return nil, err |
| 321 | } |
| 322 | return ss, nil |
| 323 | } |
| 324 | |
| 325 | // BlobFromReader returns a new Blob from the provided Reader r, |
| 326 | // which should be the body of the provided blobref. |
no test coverage detected