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

     1  package sys_enum_user
     2  
     3  import "github.com/kysion/base-library/utility/enum"
     4  
     5  type StateEnum enum.IEnumCode[int]
     6  
     7  type state struct {
     8  	Unactivated StateEnum
     9  	Normal      StateEnum
    10  	Suspended   StateEnum
    11  	Abnormality StateEnum
    12  	Canceled    StateEnum
    13  }
    14  
    15  var State = state{
    16  	Unactivated: enum.New[StateEnum](0, "未激活"),
    17  	Normal:      enum.New[StateEnum](1, "正常"),
    18  	Suspended:   enum.New[StateEnum](-1, "封号"),
    19  	Abnormality: enum.New[StateEnum](-2, "异常"),
    20  	Canceled:    enum.New[StateEnum](-3, "已注销"),
    21  }
    22  
    23  func (e state) New(code int, description string) StateEnum {
    24  	if (code&State.Unactivated.Code()) == State.Unactivated.Code() ||
    25  		(code&State.Normal.Code()) == State.Normal.Code() ||
    26  		(code&State.Suspended.Code()) == State.Suspended.Code() ||
    27  		(code&State.Abnormality.Code()) == State.Abnormality.Code() ||
    28  		(code&State.Canceled.Code()) == State.Canceled.Code() {
    29  		return enum.New[StateEnum](code, description)
    30  	}
    31  	panic("User.State.New: error")
    32  }