code: func (r *Reader) Err() error {
  	if r.err == nil {
  		return nil
  	}
  	if b, ok := r.rdr.(*segmentBufReader); ok {
  		return &CorruptionErr{
  			Err:     r.err,
  			Dir:     b.segs[b.cur].Dir(),
  			Segment: b.segs[b.cur].Index(),
  			Offset:  int64(b.off),
  		}
  	}
  	return &CorruptionErr{
  		Err:     r.err,
  		Segment: -1,
  		Offset:  r.total,
  	}
  }
docs: // Err returns the last encountered error wrapped in a corruption error.
  // If the reader does not allow to infer a segment index and offset, a total
  // offset in the reader stream will be provided.