-
Notifications
You must be signed in to change notification settings - Fork 28
/
enum.pb_enum_generate.go
100 lines (84 loc) · 1.88 KB
/
enum.pb_enum_generate.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
// Code generated by github.com/infraboard/mcube
// DO NOT EDIT
package user
import (
"bytes"
"fmt"
"strings"
)
// ParseGenderFromString Parse Gender from string
func ParseGenderFromString(str string) (Gender, error) {
key := strings.Trim(string(str), `"`)
v, ok := Gender_value[strings.ToUpper(key)]
if !ok {
return 0, fmt.Errorf("unknown Gender: %s", str)
}
return Gender(v), nil
}
// Equal type compare
func (t Gender) Equal(target Gender) bool {
return t == target
}
// IsIn todo
func (t Gender) IsIn(targets ...Gender) bool {
for _, target := range targets {
if t.Equal(target) {
return true
}
}
return false
}
// MarshalJSON todo
func (t Gender) MarshalJSON() ([]byte, error) {
b := bytes.NewBufferString(`"`)
b.WriteString(t.String())
b.WriteString(`"`)
return b.Bytes(), nil
}
// UnmarshalJSON todo
func (t *Gender) UnmarshalJSON(b []byte) error {
ins, err := ParseGenderFromString(string(b))
if err != nil {
return err
}
*t = ins
return nil
}
// ParseCreateTypeFromString Parse CreateType from string
func ParseCreateTypeFromString(str string) (CreateType, error) {
key := strings.Trim(string(str), `"`)
v, ok := CreateType_value[strings.ToUpper(key)]
if !ok {
return 0, fmt.Errorf("unknown CreateType: %s", str)
}
return CreateType(v), nil
}
// Equal type compare
func (t CreateType) Equal(target CreateType) bool {
return t == target
}
// IsIn todo
func (t CreateType) IsIn(targets ...CreateType) bool {
for _, target := range targets {
if t.Equal(target) {
return true
}
}
return false
}
// MarshalJSON todo
func (t CreateType) MarshalJSON() ([]byte, error) {
b := bytes.NewBufferString(`"`)
b.WriteString(t.String())
b.WriteString(`"`)
return b.Bytes(), nil
}
// UnmarshalJSON todo
func (t *CreateType) UnmarshalJSON(b []byte) error {
ins, err := ParseCreateTypeFromString(string(b))
if err != nil {
return err
}
*t = ins
return nil
}