MCPcopy Create free account
hub / github.com/chronoxor/FastBinaryEncoding / getItem

Method getItem

projects/JavaScript/proto/fbe.js:2567–2581  ·  view source on GitHub ↗

* Vector index operator * @this {!FieldModelVector} * @param {!number} index Vector index * @returns {!FieldModel} Base field model value

(index)

Source from the content-addressed store, hash-verified

2565 * @returns {!FieldModel} Base field model value
2566 */
2567 getItem (index) {
2568 console.assert(((this._buffer.offset + this.fbeOffset + this.fbeSize) <= this._buffer.size), 'Model is broken!')
2569
2570 let fbeVectorOffset = this.readUInt32(this.fbeOffset)
2571 console.assert(((fbeVectorOffset > 0) && ((this._buffer.offset + fbeVectorOffset + 4) <= this._buffer.size)), 'Model is broken!')
2572
2573 let fbeVectorSize = this.readUInt32(fbeVectorOffset)
2574 if (index >= fbeVectorSize) {
2575 throw new Error('Index is out of bounds!')
2576 }
2577
2578 this._model.fbeOffset = fbeVectorOffset + 4
2579 this._model.fbeShift(index * this._model.fbeSize)
2580 return this._model
2581 }
2582
2583 /**
2584 * Resize the vector and get its first model

Callers 1

getMethod · 0.95

Calls 2

readUInt32Method · 0.45
fbeShiftMethod · 0.45

Tested by

no test coverage detected