code: function AbstractAdapter(valueOrBuffer, pos) {
        this.pos = pos != null ? pos : 0;
        this.data = null;
        if (Buffer.isBuffer(valueOrBuffer)) {
          this.value = this.getValue(valueOrBuffer);
        } else {
          this.loadData(valueOrBuffer);
        }
      }
docs: Extend an AbstractAdapter instance for encoding and decoding typed values.
  @abstract
  @param {(Buffer|undefined|string|integer|double|boolean|null|date|array|object)} valueOrBuffer Value to encode or buffer instance to decode.
  @param {integer} [pos=0] Buffer position to start writing data.
  @property {Buffer} data Encoded buffer.
  @property {(undefined|string|integer|double|boolean|null|date|array|object)} value Decoded value.
  @return {object} Extended AbstractAdapter instance.