github.com/SupenBysz/gf-admin-community@v0.7.4/sys_model/sys_enum/internal/upload/event_state.go (about)

     1  package sys_enum_upload
     2  
     3  import "github.com/kysion/base-library/utility/enum"
     4  
     5  type EventStateEnum enum.IEnumCode[int]
     6  
     7  type eventState struct {
     8  	BeforeCache EventStateEnum
     9  	AfterCache  EventStateEnum
    10  	BeforeSave  EventStateEnum
    11  	AfterSave   EventStateEnum
    12  }
    13  
    14  var EventState = eventState{
    15  	BeforeCache: enum.New[EventStateEnum](1, "缓存前"),
    16  	AfterCache:  enum.New[EventStateEnum](2, "已缓存"),
    17  	BeforeSave:  enum.New[EventStateEnum](4, "保存前"),
    18  	AfterSave:   enum.New[EventStateEnum](8, "保存后"),
    19  }
    20  
    21  func (e eventState) New(code int, description string) EventStateEnum {
    22  
    23  	if (code&EventState.BeforeCache.Code()) == EventState.BeforeCache.Code() ||
    24  		(code&EventState.AfterCache.Code()) == EventState.AfterCache.Code() ||
    25  		(code&EventState.BeforeSave.Code()) == EventState.BeforeSave.Code() ||
    26  		(code&EventState.AfterSave.Code()) == EventState.AfterSave.Code() {
    27  		return enum.New[EventStateEnum](code, description)
    28  	}
    29  	panic("Upload.EventState.New: error")
    30  }