public static <T> TimeLimiterOperator<T> of(TimeLimiter timeLimiter) {
        return new TimeLimiterOperator<>(timeLimiter);
    }
@Test
    public void timeoutUsingMono() {
        given(timeLimiter.getTimeLimiterConfig())
            .willReturn(toConfig(Duration.ofMillis(1)));

        Mono<?> mono = Mono.delay(Duration.ofMinutes(1))
            .transformDeferred(TimeLimiterOperator.of(timeLimiter));

        StepVerifier.create(mono)
            .expectError(TimeoutException.class)
            .verify(Duration.ofMinutes(1));
        then(timeLimiter).should()
            .onError(any(TimeoutException.class));
    }