func (i *RelativePointer) Destroy() error {
	defer i.Context().Unregister(i)
	const opcode = 0
	const rLen = 8
	r := make([]byte, rLen)
	l := 0
	client.PutUint32(r[l:4], i.ID())
	l += 4
	client.PutUint32(r[l:l+4], uint32(rLen<<16|opcode&0x0000ffff))
	l += 4
	err := i.Context().WriteMsg(r, nil)
	return err
}
Destroy : release the relative pointer object
package relative_pointer
import (
	"reflect"
	"github.com/rajveermalviya/go-wayland/wayland/client"
)
type RelativePointerManager struct {
	client.BaseProxy
}
func NewRelativePointerManager(ctx *client.Context) *RelativePointerManager {
	zwpRelativePointerManagerV1 := &RelativePointerManager{}
	ctx.Register(zwpRelativePointerManagerV1)
	return zwpRelativePointerManagerV1
}
func (i *RelativePointerManager) Destroy() error {
	defer i.Context().Unregister(i)
	const opcode = 0
	const rLen = 8
	r := make([]byte, rLen)
	l := 0
	client.PutUint32(r[l:4], i.ID())
	l += 4
	client.PutUint32(r[l:l+4], uint32(rLen<<16|opcode&0x0000ffff))
	l += 4
	err := i.Context().WriteMsg(r, nil)
	return err
}
func (i *RelativePointerManager) GetRelativePointer(pointer *client.Pointer) (*RelativePointer, error) {
	id := NewRelativePointer(i.Context())
	const opcode = 1
	const rLen = 8 + 4 + 4
	r := make([]byte, rLen)
	l := 0
	client.PutUint32(r[l:4], i.ID())
	l += 4
	client.PutUint32(r[l:l+4], uint32(rLen<<16|opcode&0x0000ffff))
	l += 4
	client.PutUint32(r[l:l+4], id.ID())
	l += 4
	client.PutUint32(r[l:l+4], pointer.ID())
	l += 4
	err := i.Context().WriteMsg(r, nil)
	return id, err
}
type RelativePointer struct {
	client.BaseProxy
	relativeMotionHandlers []RelativePointerRelativeMotionHandlerFunc
}
func NewRelativePointer(ctx *client.Context) *RelativePointer {
	zwpRelativePointerV1 := &RelativePointer{}
	ctx.Register(zwpRelativePointerV1)
	return zwpRelativePointerV1
}