1package enumvariants
2
3// Integer, string, and float can be enum types.
4// Bool cannot be enum type.
5// Only basic types can be enum types.
6
7type UIntEnum uint
8
9const (
10	UIntA UIntEnum = 0
11	UIntB UIntEnum = 1
12)
13
14type StringEnum string
15
16const (
17	StringA StringEnum = "stringa"
18	StringB StringEnum = "stringb"
19	StringC StringEnum = "stringc"
20)
21
22type RuneEnum rune
23
24const (
25	RuneA RuneEnum = 'a'
26)
27
28type ByteEnum byte
29
30const (
31	ByteA = ByteEnum('a')
32)
33
34type Int32Enum int32
35
36const (
37	Int32A Int32Enum = 0
38	Int32B Int32Enum = 1
39)
40
41type FloatEnum float64
42
43const (
44	FloatEnumA FloatEnum = iota
45	FloatEnumB
46)
47
48type BoolNotEnum bool
49
50const (
51	BoolNotEnumA BoolNotEnum = true
52	BoolNotEnumB BoolNotEnum = false
53)
54
55type NonBasicType S
56
57type S struct{ F int }
58
59var (
60	SA NonBasicType = NonBasicType{F: 1}
61	SB NonBasicType = NonBasicType{F: 2}
62)
63
64const There AcrossBlocksDeclsFiles = 2
65