const{c:e,b4a:r,assert:s}=require("hyperdispatch/runtime"),{version:t,getEncoding:n,setVersion:i}=require("./messages.js"),a=t;function c(r,{version:s=a}={}){const t={buffer:r,start:0,end:r.length},n=e.uint.decode(t),c=function(e){switch(e){case 0:return d;case 1:return l;case 2:return o;case 3:return u;case 4:return h;default:throw new Error("Handler not found for ID: "+e)}}(n);i(s);const v=c.enc.decode(t);return{id:n,name:c.name,value:v}}const d={name:"@keet-registry-service/add-writer",id:0,enc:n("@keet-registry-service/writer")},l={name:"@keet-registry-service/put-record",id:1,enc:n("@keet-registry-service/record")},o={name:"@keet-registry-service/set-manifest",id:2,enc:n("@keet-registry-v3/manifest")},u={name:"@keet-registry-service/reserve",id:3,enc:n("@keet-registry-service/reservation")},h={name:"@keet-registry-service/block",id:4,enc:n("@keet-registry-service/block-request")};module.exports={version:t,encode:function(s,t,{version:n=a}={}){const c={buffer:null,start:0,end:0},v=function(e){switch(e){case"@keet-registry-service/add-writer":return d;case"@keet-registry-service/put-record":return l;case"@keet-registry-service/set-manifest":return o;case"@keet-registry-service/reserve":return u;case"@keet-registry-service/block":return h;default:throw new Error("Handler not found for name: "+e)}}(s);return i(n),e.uint.preencode(c,v.id),v.enc.preencode(c,t),c.buffer=r.allocUnsafe(c.end),e.uint.encode(c,v.id),v.enc.encode(c,t),c.buffer},decode:c,Router:class{constructor(){this._handler0=null,this._handler1=null,this._handler2=null,this._handler3=null,this._handler4=null,this._missing=5}add(e,r){switch(e){case"@keet-registry-service/add-writer":this._handler0=r;break;case"@keet-registry-service/put-record":this._handler1=r;break;case"@keet-registry-service/set-manifest":this._handler2=r;break;case"@keet-registry-service/reserve":this._handler3=r;break;case"@keet-registry-service/block":this._handler4=r;break;default:throw new Error("Cannot register a handler for a nonexistent route: "+e)}this._missing--}_checkAll(){s(null!==this._handler0,'Missing handler for "@keet-registry-service/add-writer"'),s(null!==this._handler1,'Missing handler for "@keet-registry-service/put-record"'),s(null!==this._handler2,'Missing handler for "@keet-registry-service/set-manifest"'),s(null!==this._handler3,'Missing handler for "@keet-registry-service/reserve"'),s(null!==this._handler4,'Missing handler for "@keet-registry-service/block"')}async dispatch(e,s){this._missing>0&&this._checkAll(),i(a);const t=r.isBuffer(e)?c(e):e;switch(t.id){case 0:return this._handler0(t.value,s);case 1:return this._handler1(t.value,s);case 2:return this._handler2(t.value,s);case 3:return this._handler3(t.value,s);case 4:return this._handler4(t.value,s);default:throw new Error("Handler not found for ID:"+t.id)}}}};