package com.ys.bdtp.adm.mvvm.model.nt

/**
 * 网络请求状态
 *
 * @author bai
 */
sealed class Response<T> {
    companion object {
        fun <T> create(data: T): SuccessResponse<T> {
            return SuccessResponse(data)
        }

        fun <T> create(fail: Fail): FailureResponse<T> {
            return FailureResponse(fail)
        }
    }
}

/**
 * 网络请求成功, 数据成功返回
 *
 * @author bai
 */
data class SuccessResponse<T>(val data: T) : Response<T>()


/**
 * 网络请求失败
 *
 * @author bai
 */
data class FailureResponse<T>(val fail: Fail) : Response<T>()