Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( Success = goenum.NewEnum[ErrorCode]("Success", ErrorCode{code: 0, desc: "成功"}) Failed = goenum.NewEnum[ErrorCode]("Failed", ErrorCode{code: -1, desc: "未知异常"}) NetworkError = goenum.NewEnum[ErrorCode]("NetworkError", ErrorCode{code: 500, desc: "网络错误"}) EncodeError = goenum.NewEnum[ErrorCode]("EncodeError", ErrorCode{code: 600, desc: "编码错误"}) )
View Source
var ( Payment = goenum.NewEnum[BizCode]("Member", BizCode{code: 2, desc: "支付服务"}) Trade = goenum.NewEnum[BizCode]("Trade", BizCode{code: 2, desc: "交易服务"}) Delivery = goenum.NewEnum[BizCode]("Delivery", BizCode{code: 2, desc: "履约服务"}) )
View Source
var ( Red = goenum.NewEnum[*ColorEnum]("Red") Yellow = goenum.NewEnum[*ColorEnum]("Yellow") )
View Source
var ( AddLabels = goenum.NewEnum[Permission]("AddLabels") AddTopic = goenum.NewEnum[Permission]("AddTopic") ViewMergeRequest = goenum.NewEnum[Permission]("ViewMergeRequest") ApproveMergeRequest = goenum.NewEnum[Permission]("ApproveMergeRequest") DeleteMergeRequest = goenum.NewEnum[Permission]("DeleteMergeRequest") )
定义权限
View Source
var ( Issues = goenum.NewEnum[Module]("Issues", Module{perms: []Permission{AddLabels, AddTopic}, basePath: "/issues/"}) MergeRequests = goenum.NewEnum[Module]("MergeRequests", Module{perms: []Permission{ViewMergeRequest, ApproveMergeRequest, DeleteMergeRequest}, basePath: "/merge/"}) )
定义模块
View Source
var ( Reporter = goenum.NewEnum[Role]("Reporter", Role{perms: []Permission{ViewMergeRequest}}) Developer = goenum.NewEnum[Role]("Developer", Role{perms: []Permission{AddLabels, AddTopic, ViewMergeRequest}}) Owner = goenum.NewEnum[Role]("Owner", Role{perms: []Permission{AddLabels, AddTopic, ViewMergeRequest, ApproveMergeRequest, DeleteMergeRequest}}) // 可以考虑给Owner单独定义一个All的权限 )
定义角色
View Source
var ( TradeCreated = goenum.NewEnum[TradeState]("Created") TradeFailed = goenum.NewEnum[TradeState]("Failed", TradeState{State: State{final: true}}) TradePaid = goenum.NewEnum[TradeState]("Paid") TradeShipped = goenum.NewEnum[TradeState]("Shipped") TradeDelivered = goenum.NewEnum[TradeState]("Delivered", TradeState{State: State{final: true}}) )
View Source
var ( ReverseCreated = goenum.NewEnum[ReverseState]("Created") ReverseFailed = goenum.NewEnum[ReverseState]("Failed", ReverseState{State: State{final: true}}) ReverseRefunded = goenum.NewEnum[ReverseState]("Refunded", ReverseState{State: State{final: true}}) )
Functions ¶
This section is empty.
Types ¶
type ErrorCode ¶ added in v1.2.1
type ErrorCode = Code
ErrorCode 这里加等号与不加等号含义是不同的, 加等号,ErrorCode = Code, 表示完全是相同的类型,reflect.Type(Success) = Code。 而不加等号,则是创建了一个新的类型, reflect.Type(Success) = ErrorCode 所以,如果加等号,就不能出现name相同的枚举,否则会破坏同类型枚举不能出现同名枚举的原则。类似的示例可以参考 state.go
type Permission ¶
type ReverseState ¶ added in v1.2.1
type ReverseState struct {
State
}
type Role ¶
Role 参考 https://docs.gitlab.com/ee/user/permissions.html
func (*Role) HasPerm ¶
func (r *Role) HasPerm(p Permission) bool
func (*Role) UnmarshalJSON ¶ added in v1.2.1
UnmarshalJSON 枚举类需要自行实现json.Unmarshaler接口
type TradeState ¶ added in v1.2.1
type TradeState struct {
State
}
TradeState 不能使用type TradeState State定义类型,这样TradeState无法访问IsFinal方法
Click to show internal directories.
Click to hide internal directories.