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())
}

