code: func NewTOCFromByteSlice(bs ByteSlice) (*TOC, error) {
  	if bs.Len() < indexTOCLen {
  		return nil, encoding.ErrInvalidSize
  	}
  	b := bs.Range(bs.Len()-indexTOCLen, bs.Len())
  
  	expCRC := binary.BigEndian.Uint32(b[len(b)-4:])
  	d := encoding.Decbuf{B: b[:len(b)-4]}
  
  	if d.Crc32(castagnoliTable) != expCRC {
  		return nil, errors.Wrap(encoding.ErrInvalidChecksum, "read TOC")
  	}
  
  	if err := d.Err(); err != nil {
  		return nil, err
  	}
  
  	return &TOC{
  		Symbols:           d.Be64(),
  		Series:            d.Be64(),
  		LabelIndices:      d.Be64(),
  		LabelIndicesTable: d.Be64(),
  		Postings:          d.Be64(),
  		PostingsTable:     d.Be64(),
  	}, nil
  }
docs: // NewTOCFromByteSlice return parsed TOC from given index byte slice.