class PublisherAsBlockingIterable implements BlockingIterable<T> {

    @Override
    public BlockingIterator<T> iterator() {
        SubscriberAndIterator<T> subscriberAndIterator = new SubscriberAndIterator<>(queueCapacityHint);
        original.subscribeInternal(subscriberAndIterator);
        return subscriberAndIterator;
    }

      PublisherAsBlockingIterable(final Publisher<T> original);
      PublisherAsBlockingIterable(final Publisher<T> original, int queueCapacityHint);

}