func (i *ActivationToken) Commit() error {
	const opcode = 3
	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
}
Commit : issues the token request

Requests an activation token based on the different parameters that
have been offered through set_serial, set_surface and set_app_id.
package xdg_activation
import (
	"reflect"
	"github.com/rajveermalviya/go-wayland/wayland/client"
)
type Activation struct {
	client.BaseProxy
}
func NewActivation(ctx *client.Context) *Activation {
	xdgActivationV1 := &Activation{}
	ctx.Register(xdgActivationV1)
	return xdgActivationV1
}
func (i *Activation) 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 *Activation) GetActivationToken() (*ActivationToken, error) {
	id := NewActivationToken(i.Context())
	const opcode = 1
	const rLen = 8 + 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
	err := i.Context().WriteMsg(r, nil)
	return id, err
}
func (i *Activation) Activate(token string, surface *client.Surface) error {
	const opcode = 2
	tokenLen := client.PaddedLen(len(token) + 1)
	rLen := 8 + (4 + tokenLen) + 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.PutString(r[l:l+(4+tokenLen)], token, tokenLen)
	l += (4 + tokenLen)
	client.PutUint32(r[l:l+4], surface.ID())
	l += 4
	err := i.Context().WriteMsg(r, nil)
	return err
}
type ActivationToken struct {
	client.BaseProxy
	doneHandlers []ActivationTokenDoneHandlerFunc
}
func NewActivationToken(ctx *client.Context) *ActivationToken {
	xdgActivationTokenV1 := &ActivationToken{}
	ctx.Register(xdgActivationTokenV1)
	return xdgActivationTokenV1
}
func (i *ActivationToken) SetSerial(serial uint32, seat *client.Seat) error {
	const opcode = 0
	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], uint32(serial))
	l += 4
	client.PutUint32(r[l:l+4], seat.ID())
	l += 4
	err := i.Context().WriteMsg(r, nil)
	return err
}
func (i *ActivationToken) SetAppId(appId string) error {
	const opcode = 1
	appIdLen := client.PaddedLen(len(appId) + 1)
	rLen := 8 + (4 + appIdLen)
	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.PutString(r[l:l+(4+appIdLen)], appId, appIdLen)
	l += (4 + appIdLen)
	err := i.Context().WriteMsg(r, nil)
	return err
}
func (i *ActivationToken) SetSurface(surface *client.Surface) error {
	const opcode = 2
	const rLen = 8 + 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], surface.ID())
	l += 4
	err := i.Context().WriteMsg(r, nil)
	return err
}