code: @VisibleForTesting
      CompletableFuture<Long> getOrAssignSegmentId(String streamSegmentName, Duration timeout) {
          return getOrAssignSegmentId(streamSegmentName, timeout, CompletableFuture::completedFuture);
      }
docs: Same as {@link #getOrAssignSegmentId(String, Duration, Function)) except that this simply returns a CompletableFuture
  with the SegmentId.
  
  @param streamSegmentName The case-sensitive StreamSegment Name.
  @param timeout           The timeout for the operation.
  @return A CompletableFuture that, when completed normally, will contain SegmentId. If failed, this will contain the
  exception that caused the failure.