import Foundation

/// 单次生成的性能统计,两后端(MNN / MLX)归一。
/// MNN 取自 LlmContext(prefill_us / decode_us);MLX 取自 GenerateCompletionInfo。
struct GenerateStats: Sendable, Equatable {
    var promptTokens: Int
    var genTokens: Int
    /// prefill(读入 prompt)耗时,秒。
    var prefillSeconds: Double
    /// decode(逐 token 生成)耗时,秒。
    var decodeSeconds: Double

    var prefillTokensPerSecond: Double {
        prefillSeconds > 0 ? Double(promptTokens) / prefillSeconds : 0
    }
    var decodeTokensPerSecond: Double {
        decodeSeconds > 0 ? Double(genTokens) / decodeSeconds : 0
    }
}
