MCPcopy
hub / github.com/perkeep/perkeep / parseSuperset

Function parseSuperset

pkg/schema/schema.go:306–323  ·  view source on GitHub ↗
(r io.Reader)

Source from the content-addressed store, hash-verified

304var errSchemaBlobTooLarge = errors.New("schema blob too large")
305
306func 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.

Callers 5

staticSetFunction · 0.85
BlobFromReaderFunction · 0.85
BlobMethod · 0.85
NewFileReaderFunction · 0.85
getSupersetMethod · 0.85

Calls 2

BytesBufferFunction · 0.92
PutBufferFunction · 0.92

Tested by

no test coverage detected