docs: public static Function<RSocket, RSocket> timeout(Duration timeout) {
      return source ->
          new RSocketProxy(source) {
            @Override
            public Mono<Void> fireAndForget(Payload payload) {
              return source.fireAndForget(payload).timeout(timeout);
            }
  
            @Override
            public Mono<Payload> requestResponse(Payload payload) {
              return source.requestResponse(payload).timeout(timeout);
            }
  
            @Override
            public Flux<Payload> requestStream(Payload payload) {
              return source.requestStream(payload).timeout(timeout);
            }
  
            @Override
            public Flux<Payload> requestChannel(Publisher<Payload> payloads) {
              return source.requestChannel(payloads).timeout(timeout);
            }
  
            @Override
            public Mono<Void> metadataPush(Payload payload) {
              return source.metadataPush(payload).timeout(timeout);
            }
          };
    }