code: public <I extends RpcRequest, O extends RpcResponse>
      ClientDecorationBuilder addRpc(DecoratingClientFunction<I, O> decorator) {
          @SuppressWarnings("unchecked")
          final DecoratingClientFunction<RpcRequest, RpcResponse> cast =
                  (DecoratingClientFunction<RpcRequest, RpcResponse>) decorator;
          return add0(RpcRequest.class, RpcResponse.class, cast);
      }
docs: Adds the specified RPC-level {@code decorator}.
  
  @param decorator the {@link DecoratingClientFunction} that intercepts an invocation
  @param <I> the {@link Request} type of the {@link Client} being decorated
  @param <O> the {@link Response} type of the {@link Client} being decorated