class MultiTappedPublisher implements Multi<T> {

    @Override
    public void subscribe(Flow.Subscriber<? super T> subscriber) {
        Objects.requireNonNull(subscriber, "subscriber is null");
        source.subscribe(new MultiTappedSubscriber<>(subscriber,
                                                     onSubscribeCallback, onNextCallback,
                                                     onErrorCallback, onCompleteCallback,
                                                     onRequestCallback, onCancelCallback));
    }

      MultiTappedPublisher(Multi<T> source,
                         Consumer<? super Flow.Subscription> onSubscribeCallback,
                         Consumer<? super T> onNextCallback,
                         Consumer<? super Throwable> onErrorCallback,
                         Runnable onCompleteCallback,
                         LongConsumer onRequestCallback,
                         Runnable onCancelCallback);
    private  MultiTappedPublisher(Builder<T> builder);

}