-
Notifications
You must be signed in to change notification settings - Fork 2
/
lockmode.go
44 lines (36 loc) · 822 Bytes
/
lockmode.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
package repo
import "fmt"
type LockMode int32
const (
// for update
UPDATE LockMode = iota
// lock in share mode
SHARE
)
// Enum name map for LockMode.
var _LockModeMap = map[LockMode]string{
UPDATE: "UPDATE",
SHARE: "SHARE",
}
// String implements the Stringer interface.
func (x LockMode) String() string {
if str, ok := _LockModeMap[x]; ok {
return str
}
return fmt.Sprintf("LockMode(%d)", x)
}
// Enum value map for LockMode.
var _LockModeValue = map[string]LockMode{
"UPDATE": UPDATE,
"SHARE": SHARE,
}
// ParseLockMode attempts to convert a string to a LockMode.
func ParseLockMode(name string) (LockMode, error) {
if x, ok := _LockModeValue[name]; ok {
return x, nil
}
return LockMode(0), fmt.Errorf("%s is not a valid LockMode", name)
}
func (x LockMode) Ptr() *LockMode {
return &x
}