vRp.CD2g_test/report/hit_logic.go

33 lines
1.0 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package report
import "github.com/kercylan98/minotaur/utils/generic"
// HitLogic 埋点命中逻辑
// - data: 当前数据
// - input: 新输入的数据
// - return: 设置当前数据
type HitLogic[Data any] func(data Data, input Data) Data
// WithHitLogicCustomize 通过自定义命中处理逻辑处理命中事件
// - 通过对旧数据和新数据的处理,将返回的值作为新的数据值
func WithHitLogicCustomize[Data any](logic func(data Data, input Data) Data) HitLogic[Data] {
return func(data Data, input Data) Data {
return logic(data, input)
}
}
// WithHitLogicCover 通过覆盖原数值的方式处理命中事件
func WithHitLogicCover[Data any]() HitLogic[Data] {
return func(data Data, input Data) Data {
return input
}
}
// WithHitLogicOverlay 通过数值叠加的方式处理命中事件
// - 例如原始值为100新输入为200最终结果为300
func WithHitLogicOverlay[Data generic.Number]() HitLogic[Data] {
return func(data Data, input Data) Data {
return data + input
}
}