/
record.go
50 lines (40 loc) · 926 Bytes
/
record.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
package generator
import (
"fmt"
)
type recordField struct {
name string
typeName string
def *recordDefinition
}
func (s *recordField) Name() string {
return toPublicName(s.name)
}
func (s *recordField) GoType() string {
return fmt.Sprintf("*%v", toPublicName(s.typeName))
}
func (s *recordField) FieldType() string {
return s.typeName
}
func (s *recordField) SerializerMethod() string {
return fmt.Sprintf("write%v", s.typeName)
}
func (s *recordField) DeserializerMethod() string {
return fmt.Sprintf("read%v", s.typeName)
}
/* If the record type is defined inline, add the definition to the Package */
func (s *recordField) AddStruct(p *Package) {
if s.def != nil {
s.def.AddStruct(p)
}
}
func (s *recordField) AddSerializer(p *Package) {
if s.def != nil {
s.def.AddSerializer(p)
}
}
func (s *recordField) AddDeserializer(p *Package) {
if s.def != nil {
s.def.AddDeserializer(p)
}
}