key-collection
Version:
Hyperdb-based collection of 32-byte keys
100 lines (85 loc) • 2.05 kB
JavaScript
// This file is autogenerated by the hyperschema compiler
// Schema Version: 1
/* eslint-disable camelcase */
/* eslint-disable quotes */
const VERSION = 1
const { c } = require('hyperschema/runtime')
// eslint-disable-next-line no-unused-vars
let version = VERSION
// @key-collection/key-entry
const encoding0 = {
preencode (state, m) {
c.fixed32.preencode(state, m.key)
c.string.preencode(state, m.name)
},
encode (state, m) {
c.fixed32.encode(state, m.key)
c.string.encode(state, m.name)
},
decode (state) {
const r0 = c.fixed32.decode(state)
const r1 = c.string.decode(state)
return {
key: r0,
name: r1
}
}
}
// @key-collection/key-entry/hyperdb#0
const encoding1 = {
preencode (state, m) {
c.string.preencode(state, m.name)
},
encode (state, m) {
c.string.encode(state, m.name)
},
decode (state) {
const r1 = c.string.decode(state)
return {
key: null,
name: r1
}
}
}
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 '@key-collection/key-entry': return encoding0
case '@key-collection/key-entry/hyperdb#0': return encoding1
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
module.exports = { resolveStruct, getStruct, getEnum, getEncoding, encode, decode, setVersion, version }