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

Method get

projects/JavaScript/proto/fbe.js:4884–4906  ·  view source on GitHub ↗

* Get the set value * @this {!FinalModelSet} * @param {Set=} values Set values, defaults is new Set() * @returns {!object} Result set values and their size

(values = new Set())

Source from the content-addressed store, hash-verified

4882 * @returns {!object} Result set values and their size
4883 */
4884 get (values = new Set()) {
4885 values.clear()
4886
4887 console.assert(((this._buffer.offset + this.fbeOffset + 4) <= this._buffer.size), 'Model is broken!')
4888 if ((this._buffer.offset + this.fbeOffset + 4) > this._buffer.size) {
4889 return { value: values, size: 0 }
4890 }
4891
4892 let fbeSetSize = this.readUInt32(this.fbeOffset)
4893 if (fbeSetSize === 0) {
4894 return { value: values, size: 4 }
4895 }
4896
4897 let size = 4
4898 this._model.fbeOffset = this.fbeOffset + 4
4899 for (let i = 0; i < fbeSetSize; i++) {
4900 let value = this._model.get()
4901 values.add(value.value)
4902 this._model.fbeShift(value.size)
4903 size += value.size
4904 }
4905 return { value: values, size: size }
4906 }
4907
4908 /**
4909 * Set the set value

Callers

nothing calls this directly

Calls 5

clearMethod · 0.80
readUInt32Method · 0.45
getMethod · 0.45
addMethod · 0.45
fbeShiftMethod · 0.45

Tested by

no test coverage detected