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  }