github.com/wfusion/gofusion@v1.1.14/common/infra/drivers/orm/idgen/interface.go (about) 1 package idgen 2 3 import ( 4 "errors" 5 6 "gorm.io/gorm" 7 8 "github.com/wfusion/gofusion/common/utils" 9 ) 10 11 var ( 12 ErrNewGenerator = errors.New("new id generator error") 13 ) 14 15 type Generator interface { 16 Next(opts ...utils.OptionExtender) (id uint64, err error) 17 } 18 19 type option struct { 20 tx *gorm.DB 21 idx int64 22 tableName string 23 } 24 25 func GormTx(tx *gorm.DB) utils.OptionFunc[option] { 26 return func(o *option) { 27 o.tx = tx 28 } 29 }