// Path: okgo/src/main/java/com/lzy/okgo/model/Result.java
// public final class Result<T> {
//     @SuppressWarnings("ConstantConditions") // Guarding public API nullability.
//     public static <T> Result<T> error(Throwable error) {
//         if (error == null) throw new NullPointerException("error == null");
//         return new Result<>(null, error);
//     }
// 
//     @SuppressWarnings("ConstantConditions") // Guarding public API nullability.
//     public static <T> Result<T> response(Response<T> response) {
//         if (response == null) throw new NullPointerException("response == null");
//         return new Result<>(response, null);
//     }
// 
//     private final Response<T> response;
//     private final Throwable error;
// 
//     private Result(Response<T> response, Throwable error) {
//         this.response = response;
//         this.error = error;
//     }
// 
//     /**
//      * The response received from executing an HTTP request. Only present when {@link #isError()} is
//      * false, null otherwise.
//      */
// 
//     public Response<T> response() {
//         return response;
//     }
// 
//     /**
//      * The error experienced while attempting to execute an HTTP request. Only present when {@link
//      * #isError()} is true, null otherwise.
//      * If the error is an {@link IOException} then there was a problem with the transport to the
//      * remote server. Any other exception type indicates an unexpected failure and should be
//      * considered fatal (configuration error, programming error, etc.).
//      */
// 
//     public Throwable error() {
//         return error;
//     }
// 
//     /** {@code true} if the request resulted in an error. See {@link #error()} for the cause. */
//     public boolean isError() {
//         return error != null;
//     }
// 
//     @Override
//     public String toString() {
//         if (error != null) {
//             return "Result{isError=true, error=\"" + error + "\"}";
//         }
//         return "Result{isError=false, response=" + response + '}';
//     }
// }


import com.lzy.okgo.adapter.AdapterParam;
import com.lzy.okgo.adapter.Call;
import com.lzy.okgo.adapter.CallAdapter;
import com.lzy.okgo.model.Result;
import rx.Single;
/*
 * Copyright 2016 jeasonlzy(廖子尧)
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.lzy.okrx.adapter;



/**
 * ================================================
 * 作    者：jeasonlzy（廖子尧）Github地址：https://github.com/jeasonlzy
 * 版    本：1.0
 * 创建日期：2017/5/26
 * 描    述：
 * 修订历史：
 * ================================================
 */
public class SingleResult<T> implements CallAdapter<T, Single<Result<T>>> {
    @Override
// Path: okgo/src/main/java/com/lzy/okgo/model/Result.java
// public final class Result<T> {
//     @SuppressWarnings("ConstantConditions") // Guarding public API nullability.
//     public static <T> Result<T> error(Throwable error) {
//         if (error == null) throw new NullPointerException("error == null");
//         return new Result<>(null, error);
//     }
// 
//     @SuppressWarnings("ConstantConditions") // Guarding public API nullability.
//     public static <T> Result<T> response(Response<T> response) {
//         if (response == null) throw new NullPointerException("response == null");
//         return new Result<>(response, null);
//     }
// 
//     private final Response<T> response;
//     private final Throwable error;
// 
//     private Result(Response<T> response, Throwable error) {
//         this.response = response;
//         this.error = error;
//     }
// 
//     /**
//      * The response received from executing an HTTP request. Only present when {@link #isError()} is
//      * false, null otherwise.
//      */
// 
//     public Response<T> response() {
//         return response;
//     }
// 
//     /**
//      * The error experienced while attempting to execute an HTTP request. Only present when {@link
//      * #isError()} is true, null otherwise.
//      * If the error is an {@link IOException} then there was a problem with the transport to the
//      * remote server. Any other exception type indicates an unexpected failure and should be
//      * considered fatal (configuration error, programming error, etc.).
//      */
// 
//     public Throwable error() {
//         return error;
//     }
// 
//     /** {@code true} if the request resulted in an error. See {@link #error()} for the cause. */
//     public boolean isError() {
//         return error != null;
//     }
// 
//     @Override
//     public String toString() {
//         if (error != null) {
//             return "Result{isError=true, error=\"" + error + "\"}";
//         }
//         return "Result{isError=false, response=" + response + '}';
//     }
// }


// Path: okrx/src/main/java/com/lzy/okrx/adapter/SingleResult.java
import com.lzy.okgo.adapter.AdapterParam;
import com.lzy.okgo.adapter.Call;
import com.lzy.okgo.adapter.CallAdapter;
import com.lzy.okgo.model.Result;
import rx.Single;

/*
 * Copyright 2016 jeasonlzy(廖子尧)
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.lzy.okrx.adapter;



/**
 * ================================================
 * 作    者：jeasonlzy（廖子尧）Github地址：https://github.com/jeasonlzy
 * 版    本：1.0
 * 创建日期：2017/5/26
 * 描    述：
 * 修订历史：
 * ================================================
 */
public class SingleResult<T> implements CallAdapter<T, Single<Result<T>>> {
    @Override
    public Single<Result<T>> adapt(Call<T> call, AdapterParam param) {