@Override
    default ClientFactory unwrap() {
        return this;
    }
Unwraps the specified {@code client} object into the object of the specified {@code type}. For example,
<pre>{@code
ClientFactory clientFactory = ...;
WebClient client = WebClient.builder(...)
                            .factory(clientFactory)
                            .decorator(LoggingClient.newDecorator())
                            .build();

LoggingClient unwrapped = clientFactory.unwrap(client, LoggingClient.class);

// If the client implements Unwrappable, you can just use the 'as()' method.
LoggingClient unwrapped2 = client.as(LoggingClient.class);
}</pre>

@param client the client object
@param type the type of the object to return
@return the object of the specified {@code type} if found, or {@code null} if not found.

@see Client#as(Class)
@see Clients#unwrap(Object, Class)
@see Unwrappable
core/src/main/java/com/linecorp/armeria/client/ClientFactory.java