UNPKG

blind-peer-encodings

Version:
191 lines (163 loc) 3.84 kB
// This file is autogenerated by the hyperschema compiler // Schema Version: 1 /* eslint-disable camelcase */ /* eslint-disable quotes */ /* eslint-disable space-before-function-paren */ const { c } = require('hyperschema/runtime') const VERSION = 1 // eslint-disable-next-line no-unused-vars let version = VERSION // @blind-peer-router/peer const encoding0 = { preencode(state, m) { c.fixed32.preencode(state, m.key) state.end++ // max flag is 1 so always one byte if (m.location) c.string.preencode(state, m.location) }, encode(state, m) { const flags = m.location ? 1 : 0 c.fixed32.encode(state, m.key) c.uint.encode(state, flags) if (m.location) c.string.encode(state, m.location) }, decode(state) { const r0 = c.fixed32.decode(state) const flags = c.uint.decode(state) return { key: r0, location: (flags & 1) !== 0 ? c.string.decode(state) : null } } } // @blind-peer-router/assignment.peers const encoding1_1 = c.array(c.frame(encoding0)) // @blind-peer-router/assignment const encoding1 = { preencode(state, m) { c.fixed32.preencode(state, m.key) encoding1_1.preencode(state, m.peers) }, encode(state, m) { c.fixed32.encode(state, m.key) encoding1_1.encode(state, m.peers) }, decode(state) { const r0 = c.fixed32.decode(state) const r1 = encoding1_1.decode(state) return { key: r0, peers: r1 } } } // @blind-peer-router/resolve-peers-request const encoding2 = { preencode(state, m) { c.fixed32.preencode(state, m.key) }, encode(state, m) { c.fixed32.encode(state, m.key) }, decode(state) { const r0 = c.fixed32.decode(state) return { key: r0 } } } // @blind-peer-router/resolve-peers-response.peers const encoding3_0 = encoding1_1 // @blind-peer-router/resolve-peers-response const encoding3 = { preencode(state, m) { encoding3_0.preencode(state, m.peers) }, encode(state, m) { encoding3_0.encode(state, m.peers) }, decode(state) { const r0 = encoding3_0.decode(state) return { peers: r0 } } } // @blind-peer-router/assignment/hyperdb#0.peers const encoding4_1 = encoding1_1 // @blind-peer-router/assignment/hyperdb#0 const encoding4 = { preencode(state, m) { encoding4_1.preencode(state, m.peers) }, encode(state, m) { encoding4_1.encode(state, m.peers) }, decode(state) { const r1 = encoding4_1.decode(state) return { key: null, peers: 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 '@blind-peer-router/peer': return encoding0 case '@blind-peer-router/assignment': return encoding1 case '@blind-peer-router/resolve-peers-request': return encoding2 case '@blind-peer-router/resolve-peers-response': return encoding3 case '@blind-peer-router/assignment/hyperdb#0': return encoding4 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 }