docs: public Query range(ByteStringRange range) {
      RowRange.Builder rangeBuilder = RowRange.newBuilder();
  
      switch (range.getStartBound()) {
        case OPEN:
          rangeBuilder.setStartKeyOpen(range.getStart());
          break;
        case CLOSED:
          rangeBuilder.setStartKeyClosed(range.getStart());
          break;
        case UNBOUNDED:
          rangeBuilder.clearStartKey();
          break;
        default:
          throw new IllegalStateException("Unknown start bound: " + range.getStartBound());
      }
  
      switch (range.getEndBound()) {
        case OPEN:
          rangeBuilder.setEndKeyOpen(range.getEnd());
          break;
        case CLOSED:
          rangeBuilder.setEndKeyClosed(range.getEnd());
          break;
        case UNBOUNDED:
          rangeBuilder.clearEndKey();
          break;
        default:
          throw new IllegalStateException("Unknown end bound: " + range.getEndBound());
      }
  
      builder.getRowsBuilder().addRowRanges(rangeBuilder.build());
  
      return this;
    }