package engine import ( "git.fsdpf.net/go/condition/contracts" "git.fsdpf.net/go/db" "git.fsdpf.net/go/req" ) type EngineCase[T any] struct { predicate contracts.Condition cb func(data T, g req.GlobalParams) error } func (this EngineCase[T]) ToSql(param contracts.ConditionTokenValue) db.Expression { if this.predicate == nil || this.predicate.IsEmpty() { return db.Raw("NULL") } return this.predicate.ToSql(param) } func (this EngineCase[T]) Execute(data T, g req.GlobalParams) error { return this.cb(data, g) }