func (s {{.Node.Name}}) {{.Field.Name|title}}() ({{.G.Capnp}}.Pointer, error) {
	{{template "_checktag" . -}}
	{{if .Default.IsValid -}}
	p, err := s.Struct.Pointer({{.Field.Slot.Offset}})
	if err != nil {
		return nil, err
	}
	return {{.G.Capnp}}.PointerDefault(p, {{.Default}})
	{{- else -}}
	return s.Struct.Pointer({{.Field.Slot.Offset}})
	{{- end}}
}

{{template "_hasfield" .}}

func (s {{.Node.Name}}) {{.Field.Name|title}}Ptr() ({{.G.Capnp}}.Ptr, error) {
	{{if .Default.IsValid -}}
	p, err := s.Struct.Ptr({{.Field.Slot.Offset}})
	if err != nil {
		return nil, err
	}
	return p.Default({{.Default}})
	{{- else -}}
	return s.Struct.Ptr({{.Field.Slot.Offset}})
	{{- end}}
}

func (s {{.Node.Name}}) Set{{.Field.Name|title}}(v {{.G.Capnp}}.Pointer) error {
	{{template "_settag" . -}}
	return s.Struct.SetPointer({{.Field.Slot.Offset}}, v)
}

func (s {{.Node.Name}}) Set{{.Field.Name|title}}Ptr(v {{.G.Capnp}}.Ptr) error {
	{{template "_settag" . -}}
	return s.Struct.SetPtr({{.Field.Slot.Offset}}, v)
}

