string_len_kind.gno
0.69 Kb · 44 lines
1package validate
2
3const (
4 HardShortMax = 32
5 HardStandardMax = 256
6 HardTextMax = 1024
7)
8
9type StringLenKind int
10
11const (
12 StringShort StringLenKind = iota + 1
13 StringStandard
14 StringText
15)
16
17func (kind StringLenKind) Valid() (bool, string) {
18 if kind != StringShort &&
19 kind != StringStandard &&
20 kind != StringText {
21 return false, "invalid StringLenKind"
22 }
23 return true, ""
24}
25
26func (kind StringLenKind) MustValid() {
27 valid, message := kind.Valid()
28 if !valid {
29 panic(message)
30 }
31}
32
33func (kind StringLenKind) Max() int {
34 if kind == StringShort {
35 return HardShortMax
36 }
37 if kind == StringStandard {
38 return HardStandardMax
39 }
40 if kind == StringText {
41 return HardTextMax
42 }
43 return 0
44}