// This file is autogenerated by the hyperschema compiler
// Schema Version: 1
/* eslint-disable camelcase */
/* eslint-disable quotes */
/* eslint-disable space-before-function-paren */
import { c } from 'hyperschema/runtime'
const VERSION = 1
// eslint-disable-next-line no-unused-vars
let version = VERSION
// @media/dimensions
const encoding0 = {
preencode(state, m) {
c.uint.preencode(state, m.width)
c.uint.preencode(state, m.height)
},
encode(state, m) {
c.uint.encode(state, m.width)
c.uint.encode(state, m.height)
},
decode(state) {
const r0 = c.uint.decode(state)
const r1 = c.uint.decode(state)
return {
width: r0,
height: r1
}
}
}
// @media/metadata.dimensions
const encoding1_1 = c.frame(encoding0)
// @media/metadata
const encoding1 = {
preencode(state, m) {
state.end++ // max flag is 4 so always one byte
if (m.mimetype) c.string.preencode(state, m.mimetype)
if (m.dimensions) encoding1_1.preencode(state, m.dimensions)
if (m.duration) c.uint.preencode(state, m.duration)
},
encode(state, m) {
const flags = (m.mimetype ? 1 : 0) | (m.dimensions ? 2 : 0) | (m.duration ? 4 : 0)
c.uint.encode(state, flags)
if (m.mimetype) c.string.encode(state, m.mimetype)
if (m.dimensions) encoding1_1.encode(state, m.dimensions)
if (m.duration) c.uint.encode(state, m.duration)
},
decode(state) {
const flags = c.uint.decode(state)
return {
mimetype: (flags & 1) !== 0 ? c.string.decode(state) : null,
dimensions: (flags & 2) !== 0 ? encoding1_1.decode(state) : null,
duration: (flags & 4) !== 0 ? c.uint.decode(state) : 0
}
}
}
// @media/file.metadata
const encoding2_0 = c.frame(encoding1)
// @media/file
const encoding2 = {
preencode(state, m) {
state.end++ // max flag is 4 so always one byte
if (m.metadata) encoding2_0.preencode(state, m.metadata)
if (m.base64) c.string.preencode(state, m.base64)
if (m.buffer) c.buffer.preencode(state, m.buffer)
},
encode(state, m) {
const flags = (m.metadata ? 1 : 0) | (m.base64 ? 2 : 0) | (m.buffer ? 4 : 0)
c.uint.encode(state, flags)
if (m.metadata) encoding2_0.encode(state, m.metadata)
if (m.base64) c.string.encode(state, m.base64)
if (m.buffer) c.buffer.encode(state, m.buffer)
},
decode(state) {
const flags = c.uint.decode(state)
return {
metadata: (flags & 1) !== 0 ? encoding2_0.decode(state) : null,
base64: (flags & 2) !== 0 ? c.string.decode(state) : null,
buffer: (flags & 4) !== 0 ? c.buffer.decode(state) : null
}
}
}
// @media/crop
const encoding3 = {
preencode(state, m) {
state.end++ // max flag is 8 so always one byte
if (m.left) c.uint.preencode(state, m.left)
if (m.top) c.uint.preencode(state, m.top)
if (m.width) c.uint.preencode(state, m.width)
if (m.height) c.uint.preencode(state, m.height)
},
encode(state, m) {
const flags = (m.left ? 1 : 0) | (m.top ? 2 : 0) | (m.width ? 4 : 0) | (m.height ? 8 : 0)
c.uint.encode(state, flags)
if (m.left) c.uint.encode(state, m.left)
if (m.top) c.uint.encode(state, m.top)
if (m.width) c.uint.encode(state, m.width)
if (m.height) c.uint.encode(state, m.height)
},
decode(state) {
const flags = c.uint.decode(state)
return {
left: (flags & 1) !== 0 ? c.uint.decode(state) : 0,
top: (flags & 2) !== 0 ? c.uint.decode(state) : 0,
width: (flags & 4) !== 0 ? c.uint.decode(state) : 0,
height: (flags & 8) !== 0 ? c.uint.decode(state) : 0
}
}
}
// @media/create-chat-image-preview-request
const encoding4 = {
preencode(state, m) {
state.end++ // max flag is 1 so always one byte
if (m.path) c.string.preencode(state, m.path)
},
encode(state, m) {
const flags = m.path ? 1 : 0
c.uint.encode(state, flags)
if (m.path) c.string.encode(state, m.path)
},
decode(state) {
const flags = c.uint.decode(state)
return {
path: (flags & 1) !== 0 ? c.string.decode(state) : null
}
}
}
// @media/create-chat-image-preview-response.metadata
const encoding5_0 = encoding2_0
// @media/create-chat-image-preview-response.small
const encoding5_1 = c.frame(encoding2)
// @media/create-chat-image-preview-response.medium
const encoding5_2 = encoding5_1
// @media/create-chat-image-preview-response.large
const encoding5_3 = encoding5_1
// @media/create-chat-image-preview-response
const encoding5 = {
preencode(state, m) {
encoding5_0.preencode(state, m.metadata)
encoding5_1.preencode(state, m.small)
encoding5_2.preencode(state, m.medium)
encoding5_3.preencode(state, m.large)
},
encode(state, m) {
encoding5_0.encode(state, m.metadata)
encoding5_1.encode(state, m.small)
encoding5_2.encode(state, m.medium)
encoding5_3.encode(state, m.large)
},
decode(state) {
const r0 = encoding5_0.decode(state)
const r1 = encoding5_1.decode(state)
const r2 = encoding5_2.decode(state)
const r3 = encoding5_3.decode(state)
return {
metadata: r0,
small: r1,
medium: r2,
large: r3
}
}
}
// @media/create-chat-video-preview-request
const encoding6 = encoding4
// @media/create-chat-video-preview-response.metadata
const encoding7_0 = encoding2_0
// @media/create-chat-video-preview-response.small
const encoding7_1 = encoding5_1
// @media/create-chat-video-preview-response.medium
const encoding7_2 = encoding5_1
// @media/create-chat-video-preview-response.large
const encoding7_3 = encoding5_1
// @media/create-chat-video-preview-response
const encoding7 = {
preencode(state, m) {
encoding7_0.preencode(state, m.metadata)
encoding7_1.preencode(state, m.small)
encoding7_2.preencode(state, m.medium)
encoding7_3.preencode(state, m.large)
},
encode(state, m) {
encoding7_0.encode(state, m.metadata)
encoding7_1.encode(state, m.small)
encoding7_2.encode(state, m.medium)
encoding7_3.encode(state, m.large)
},
decode(state) {
const r0 = encoding7_0.decode(state)
const r1 = encoding7_1.decode(state)
const r2 = encoding7_2.decode(state)
const r3 = encoding7_3.decode(state)
return {
metadata: r0,
small: r1,
medium: r2,
large: r3
}
}
}
// @media/create-chat-link-preview-request
const encoding8 = {
preencode(state, m) {
state.end++ // max flag is 2 so always one byte
if (m.path) c.string.preencode(state, m.path)
if (m.buffer) c.buffer.preencode(state, m.buffer)
},
encode(state, m) {
const flags = (m.path ? 1 : 0) | (m.buffer ? 2 : 0)
c.uint.encode(state, flags)
if (m.path) c.string.encode(state, m.path)
if (m.buffer) c.buffer.encode(state, m.buffer)
},
decode(state) {
const flags = c.uint.decode(state)
return {
path: (flags & 1) !== 0 ? c.string.decode(state) : null,
buffer: (flags & 2) !== 0 ? c.buffer.decode(state) : null
}
}
}
// @media/create-chat-link-preview-response.metadata
const encoding9_0 = encoding2_0
// @media/create-chat-link-preview-response
const encoding9 = {
preencode(state, m) {
state.end++ // max flag is 2 so always one byte
if (m.metadata) encoding9_0.preencode(state, m.metadata)
if (m.buffer) c.buffer.preencode(state, m.buffer)
},
encode(state, m) {
const flags = (m.metadata ? 1 : 0) | (m.buffer ? 2 : 0)
c.uint.encode(state, flags)
if (m.metadata) encoding9_0.encode(state, m.metadata)
if (m.buffer) c.buffer.encode(state, m.buffer)
},
decode(state) {
const flags = c.uint.decode(state)
return {
metadata: (flags & 1) !== 0 ? encoding9_0.decode(state) : null,
buffer: (flags & 2) !== 0 ? c.buffer.decode(state) : null
}
}
}
// @media/create-profile-avatar-request.crop
const encoding10_1 = c.frame(encoding3)
// @media/create-profile-avatar-request
const encoding10 = {
preencode(state, m) {
state.end++ // max flag is 2 so always one byte
if (m.path) c.string.preencode(state, m.path)
if (m.crop) encoding10_1.preencode(state, m.crop)
},
encode(state, m) {
const flags = (m.path ? 1 : 0) | (m.crop ? 2 : 0)
c.uint.encode(state, flags)
if (m.path) c.string.encode(state, m.path)
if (m.crop) encoding10_1.encode(state, m.crop)
},
decode(state) {
const flags = c.uint.decode(state)
return {
path: (flags & 1) !== 0 ? c.string.decode(state) : null,
crop: (flags & 2) !== 0 ? encoding10_1.decode(state) : null
}
}
}
// @media/create-profile-avatar-response.small
const encoding11_0 = encoding5_1
// @media/create-profile-avatar-response.medium
const encoding11_1 = encoding5_1
// @media/create-profile-avatar-response
const encoding11 = {
preencode(state, m) {
encoding11_0.preencode(state, m.small)
encoding11_1.preencode(state, m.medium)
},
encode(state, m) {
encoding11_0.encode(state, m.small)
encoding11_1.encode(state, m.medium)
},
decode(state) {
const r0 = encoding11_0.decode(state)
const r1 = encoding11_1.decode(state)
return {
small: r0,
medium: r1
}
}
}
// @media/create-room-avatar-request.crop
const encoding12_1 = encoding10_1
// @media/create-room-avatar-request
const encoding12 = {
preencode(state, m) {
state.end++ // max flag is 2 so always one byte
if (m.path) c.string.preencode(state, m.path)
if (m.crop) encoding12_1.preencode(state, m.crop)
},
encode(state, m) {
const flags = (m.path ? 1 : 0) | (m.crop ? 2 : 0)
c.uint.encode(state, flags)
if (m.path) c.string.encode(state, m.path)
if (m.crop) encoding12_1.encode(state, m.crop)
},
decode(state) {
const flags = c.uint.decode(state)
return {
path: (flags & 1) !== 0 ? c.string.decode(state) : null,
crop: (flags & 2) !== 0 ? encoding12_1.decode(state) : null
}
}
}
// @media/create-room-avatar-response.small
const encoding13_0 = encoding5_1
// @media/create-room-avatar-response.medium
const encoding13_1 = encoding5_1
// @media/create-room-avatar-response
const encoding13 = {
preencode(state, m) {
encoding13_0.preencode(state, m.small)
encoding13_1.preencode(state, m.medium)
},
encode(state, m) {
encoding13_0.encode(state, m.small)
encoding13_1.encode(state, m.medium)
},
decode(state) {
const r0 = encoding13_0.decode(state)
const r1 = encoding13_1.decode(state)
return {
small: r0,
medium: r1
}
}
}
// @media/decode-image-request
const encoding14 = {
preencode(state, m) {
state.end++ // max flag is 1 so always one byte
if (m.httpLink) c.string.preencode(state, m.httpLink)
},
encode(state, m) {
const flags = m.httpLink ? 1 : 0
c.uint.encode(state, flags)
if (m.httpLink) c.string.encode(state, m.httpLink)
},
decode(state) {
const flags = c.uint.decode(state)
return {
httpLink: (flags & 1) !== 0 ? c.string.decode(state) : null
}
}
}
// @media/decode-image-response.metadata
const encoding15_0 = encoding2_0
// @media/decode-image-response
const encoding15 = {
preencode(state, m) {
state.end++ // max flag is 2 so always one byte
if (m.metadata) encoding15_0.preencode(state, m.metadata)
if (m.data) c.buffer.preencode(state, m.data)
},
encode(state, m) {
const flags = (m.metadata ? 1 : 0) | (m.data ? 2 : 0)
c.uint.encode(state, flags)
if (m.metadata) encoding15_0.encode(state, m.metadata)
if (m.data) c.buffer.encode(state, m.data)
},
decode(state) {
const flags = c.uint.decode(state)
return {
metadata: (flags & 1) !== 0 ? encoding15_0.decode(state) : null,
data: (flags & 2) !== 0 ? c.buffer.decode(state) : null
}
}
}
function setVersion(v) {
version = v
}
function encode(name, value, v = VERSION) {
version = v
return c.encode(getEncoding(name), value)
}
function decode(name, buffer, v = VERSION) {
version = v
return c.decode(getEncoding(name), buffer)
}
function getEnum(name) {
switch (name) {
default:
throw new Error('Enum not found ' + name)
}
}
function getEncoding(name) {
switch (name) {
case '@media/dimensions':
return encoding0
case '@media/metadata':
return encoding1
case '@media/file':
return encoding2
case '@media/crop':
return encoding3
case '@media/create-chat-image-preview-request':
return encoding4
case '@media/create-chat-image-preview-response':
return encoding5
case '@media/create-chat-video-preview-request':
return encoding6
case '@media/create-chat-video-preview-response':
return encoding7
case '@media/create-chat-link-preview-request':
return encoding8
case '@media/create-chat-link-preview-response':
return encoding9
case '@media/create-profile-avatar-request':
return encoding10
case '@media/create-profile-avatar-response':
return encoding11
case '@media/create-room-avatar-request':
return encoding12
case '@media/create-room-avatar-response':
return encoding13
case '@media/decode-image-request':
return encoding14
case '@media/decode-image-response':
return encoding15
default:
throw new Error('Encoder not found ' + name)
}
}
function getStruct(name, v = VERSION) {
const enc = getEncoding(name)
return {
preencode(state, m) {
version = v
enc.preencode(state, m)
},
encode(state, m) {
version = v
enc.encode(state, m)
},
decode(state) {
version = v
return enc.decode(state)
}
}
}
const resolveStruct = getStruct // compat
export { resolveStruct, getStruct, getEnum, getEncoding, encode, decode, setVersion, version }