msgpack-javascript icon indicating copy to clipboard operation
msgpack-javascript copied to clipboard

Control offset from extension.

Open crazylexa opened this issue 7 months ago • 0 comments
trafficstars

Hi. It isn't issue but suggestion\question.

I want to have custom implementation of array container deserialization (without legth) (server optimization proposes). To implement it i want to have 2 extensions (e.g. 120 - array start [, and 121 - array end ]). So Can i implement something similar? Can i controll offset of main buffer from extension?

Expectation example:

extensionCodec.register({
  type: 121,
  decode: (data: Uint8Array) => {
    return {arrayEnd : true};
  },
});
extensionCodec.register({
  type: 120,
  decode: (data: Uint8Array) => {
    const arr = [];
    while(true) {
       let arrayElement = decode(data); // returns some obj with offset shift from main data buffer.
       if(arrayElement?.arrayEnd) break;
       arr.push(arrayElement);
    } 
    return arr ;
  },
});

crazylexa avatar Mar 27 '25 09:03 crazylexa