19 lines
570 B
Plaintext
19 lines
570 B
Plaintext
func (s {{.Node.Name}}) {{.Field.Name|title}}() {{.FieldType}} {
|
|
{{template "_checktag" . -}}
|
|
p, _ := s.Struct.Ptr({{.Field.Slot.Offset}})
|
|
return {{.FieldType}}{Client: p.Interface().Client()}
|
|
}
|
|
|
|
{{template "_hasfield" .}}
|
|
|
|
func (s {{.Node.Name}}) Set{{.Field.Name|title}}(v {{.FieldType}}) error {
|
|
{{template "_settag" . -}}
|
|
if v.Client == nil {
|
|
return s.Struct.SetPtr({{.Field.Slot.Offset}}, capnp.Ptr{})
|
|
}
|
|
seg := s.Segment()
|
|
in := {{.G.Capnp}}.NewInterface(seg, seg.Message().AddCap(v.Client))
|
|
return s.Struct.SetPtr({{.Field.Slot.Offset}}, in.ToPtr())
|
|
}
|
|
|