code: func (lc *LimitedClient) NewReader(p Path, offset, length int64) (io.ReadCloser, error) {
  	if lc.MaxReadBytes <= 0 || (length > 0 && length <= lc.MaxReadBytes) {
  		return lc.Client.NewReader(p, offset, length)
  	}
  
  	lr := limitedReader{
  		lc:           lc,
  		path:         p,
  		maxReadBytes: lc.MaxReadBytes,
  		nextOffset:   offset,
  		nextLength:   length,
  	}
  	if err := lr.nextReader(); err != nil {
  		return nil, err
  	}
  	return &lr, nil
  }
docs: // NewReader implements Client.