// Code generated by xtgen; DO NOT EDIT. package res import "bnema.dev/xturbo/xproto" import "encoding/binary" type Client struct { ResourceBase uint32 ResourceMask uint32 } const ClientSize = 8 func (v Client) Put(p []byte) { clear(p[:8]) binary.LittleEndian.PutUint32(p[0:], uint32(v.ResourceBase)) binary.LittleEndian.PutUint32(p[4:], uint32(v.ResourceMask)) } func GetClient(p []byte) (v Client) { _ = p[7] v.ResourceBase = uint32(binary.LittleEndian.Uint32(p[0:])) v.ResourceMask = uint32(binary.LittleEndian.Uint32(p[4:])) return } type Type struct { ResourceType xproto.Atom Count uint32 } const TypeSize = 8 func (v Type) Put(p []byte) { clear(p[:8]) binary.LittleEndian.PutUint32(p[0:], uint32(v.ResourceType)) binary.LittleEndian.PutUint32(p[4:], uint32(v.Count)) } func GetType(p []byte) (v Type) { _ = p[7] v.ResourceType = xproto.Atom(binary.LittleEndian.Uint32(p[0:])) v.Count = uint32(binary.LittleEndian.Uint32(p[4:])) return } type ClientIdSpec struct { Client uint32 Mask ClientIdMask } const ClientIdSpecSize = 8 func (v ClientIdSpec) Put(p []byte) { clear(p[:8]) binary.LittleEndian.PutUint32(p[0:], uint32(v.Client)) binary.LittleEndian.PutUint32(p[4:], uint32(v.Mask)) } func GetClientIdSpec(p []byte) (v ClientIdSpec) { _ = p[7] v.Client = uint32(binary.LittleEndian.Uint32(p[0:])) v.Mask = ClientIdMask(binary.LittleEndian.Uint32(p[4:])) return } type ClientIdValue struct { Spec ClientIdSpec Length uint32 Value []uint32 } const ClientIdValueSize = 12 func (v ClientIdValue) Size() int { off := 0; off += 8; off += 4; off += len(v.Value) * 4; return off } func (v ClientIdValue) Put(p []byte) { off := 0 v.Spec.Put(p[off:]) off += 8 binary.LittleEndian.PutUint32(p[off:], uint32(v.Length)) off += 4 for i := range v.Value { binary.LittleEndian.PutUint32(p[off+i*4:], uint32(v.Value[i])) } off += len(v.Value) * 4 } type ResourceIdSpec struct { Resource uint32 Type uint32 } const ResourceIdSpecSize = 8 func (v ResourceIdSpec) Put(p []byte) { clear(p[:8]) binary.LittleEndian.PutUint32(p[0:], uint32(v.Resource)) binary.LittleEndian.PutUint32(p[4:], uint32(v.Type)) } func GetResourceIdSpec(p []byte) (v ResourceIdSpec) { _ = p[7] v.Resource = uint32(binary.LittleEndian.Uint32(p[0:])) v.Type = uint32(binary.LittleEndian.Uint32(p[4:])) return } type ResourceSizeSpec struct { Spec ResourceIdSpec Bytes uint32 RefCount uint32 UseCount uint32 } const ResourceSizeSpecSize = 20 func (v ResourceSizeSpec) Put(p []byte) { clear(p[:20]) v.Spec.Put(p[0:]) binary.LittleEndian.PutUint32(p[8:], uint32(v.Bytes)) binary.LittleEndian.PutUint32(p[12:], uint32(v.RefCount)) binary.LittleEndian.PutUint32(p[16:], uint32(v.UseCount)) } func GetResourceSizeSpec(p []byte) (v ResourceSizeSpec) { _ = p[19] v.Spec = GetResourceIdSpec(p[0:]) v.Bytes = uint32(binary.LittleEndian.Uint32(p[8:])) v.RefCount = uint32(binary.LittleEndian.Uint32(p[12:])) v.UseCount = uint32(binary.LittleEndian.Uint32(p[16:])) return } type ResourceSizeValue struct { Size_ ResourceSizeSpec NumCrossReferences uint32 CrossReferences []ResourceSizeSpec } const ResourceSizeValueSize = 24 func (v ResourceSizeValue) Size() int { off := 0 off += 20 off += 4 off += len(v.CrossReferences) * 20 return off } func (v ResourceSizeValue) Put(p []byte) { off := 0 v.Size_.Put(p[off:]) off += 20 binary.LittleEndian.PutUint32(p[off:], uint32(v.NumCrossReferences)) off += 4 for i := range v.CrossReferences { v.CrossReferences[i].Put(p[off+i*20:]) } off += len(v.CrossReferences) * 20 } type ClientIdMask uint32 const ClientIdMaskClientXID ClientIdMask = 1 const ClientIdMaskLocalClientPID ClientIdMask = 2