code: public static ReadStreamIterator enforceShardBoundary(ManagedChannel channel,
        StreamReadsRequest request, Requirement shardBoundary, String fields) {
      Predicate<Read> shardPredicate =
          (ShardBoundary.Requirement.STRICT == shardBoundary) ? ShardBoundary
              .getStrictReadPredicate(request.getStart(), fields) : null;
      return new ReadStreamIterator(channel, request, shardPredicate);
    }
docs: Create a stream iterator that can enforce shard boundary semantics.
  
  @param channel The ManagedChannel.
  @param request The request for the shard of data.
  @param shardBoundary The shard boundary semantics to enforce.
  @param fields Used to check whether the specified fields would meet the minimum required
  fields for the shard boundary predicate, if applicable.