func (i *InputTimestampsManager) GetPointerTimestamps(pointer *client.Pointer) (*InputTimestamps, error) {
	id := NewInputTimestamps(i.Context())
	const opcode = 2
	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
}
GetPointerTimestamps : subscribe to high-resolution pointer timestamp events

Creates a new input timestamps object that represents a subscription
to high-resolution timestamp events for all wl_pointer events that
carry a timestamp.

If the associated wl_pointer object is invalidated, either through
client action (e.g. release) or server-side changes, the input
timestamps object becomes inert and the client should destroy it
by calling zwp_input_timestamps_v1.destroy.

pointer: the wl_pointer object for which to get timestamp events
package input_timestamps
import (
	"reflect"
	"github.com/rajveermalviya/go-wayland/wayland/client"
)
type InputTimestampsManager struct {
	client.BaseProxy
}
func NewInputTimestampsManager(ctx *client.Context) *InputTimestampsManager {
	zwpInputTimestampsManagerV1 := &InputTimestampsManager{}
	ctx.Register(zwpInputTimestampsManagerV1)
	return zwpInputTimestampsManagerV1
}
func (i *InputTimestampsManager) 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 *InputTimestampsManager) GetKeyboardTimestamps(keyboard *client.Keyboard) (*InputTimestamps, error) {
	id := NewInputTimestamps(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], keyboard.ID())
	l += 4
	err := i.Context().WriteMsg(r, nil)
	return id, err
}