package com.narutohuo.xindazhou.common.network.operator

import com.narutohuo.xindazhou.common.network.response.ApiResponse

/**
 * ApiResponse Operator 接口
 * 
 * 用于定义全局响应处理器，支持多个 Operator 链式调用
 * 
 * 使用方式：
 * ```kotlin
 * class LogOperator : ApiResponseOperator<Any> {
 *     override suspend fun invoke(response: ApiResponse<Any>): ApiResponse<Any> {
 *         ILog.d("LogOperator", "响应: $response")
 *         return response
 *     }
 * }
 * 
 * // 注册
 * GlobalApiOperator.addOperator(LogOperator())
 * ```
 * 
 * 参考 Sandwich 的 ApiResponseOperator 设计
 */
interface ApiResponseOperator<T> {
    
    /**
     * 处理响应
     * 
     * @param response API 响应
     * @return 处理后的响应（可以修改或返回原响应）
     */
    suspend fun invoke(response: ApiResponse<T>): ApiResponse<T>
}

