Search Apps Documentation Source Content File Folder Download Copy Actions Download

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}