uint8arraylist 2.1.0 → 2.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/index.d.ts +2 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +74 -53
- package/dist/src/index.js.map +1 -1
- package/package.json +3 -2
- package/src/index.ts +79 -55
package/dist/src/index.d.ts
CHANGED
|
@@ -41,14 +41,14 @@ export declare class Uint8ArrayList implements Iterable<Uint8Array> {
|
|
|
41
41
|
*/
|
|
42
42
|
slice(beginInclusive?: number, endExclusive?: number): Uint8Array;
|
|
43
43
|
/**
|
|
44
|
-
* Returns a
|
|
44
|
+
* Returns a alloc from the given start and end element index.
|
|
45
45
|
*
|
|
46
46
|
* In the best case where the data extracted comes from a single Uint8Array
|
|
47
47
|
* internally this is a no-copy operation otherwise it is a copy operation.
|
|
48
48
|
*/
|
|
49
49
|
subarray(beginInclusive?: number, endExclusive?: number): Uint8Array;
|
|
50
50
|
/**
|
|
51
|
-
* Returns a
|
|
51
|
+
* Returns a allocList from the given start and end element index.
|
|
52
52
|
*
|
|
53
53
|
* This is a no-copy operation.
|
|
54
54
|
*/
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { concat } from 'uint8arrays/concat';
|
|
2
2
|
import { equals } from 'uint8arrays/equals';
|
|
3
|
+
import { allocUnsafe, alloc } from 'uint8arrays/alloc';
|
|
3
4
|
const symbol = Symbol.for('@achingbrain/uint8arraylist');
|
|
4
|
-
function findBufAndOffset(bufs, index
|
|
5
|
-
if (index == null || index < 0
|
|
5
|
+
function findBufAndOffset(bufs, index) {
|
|
6
|
+
if (index == null || index < 0) {
|
|
6
7
|
throw new RangeError('index is out of bounds');
|
|
7
8
|
}
|
|
8
9
|
let offset = 0;
|
|
@@ -55,7 +56,7 @@ export class Uint8ArrayList {
|
|
|
55
56
|
this.bufs.push(buf);
|
|
56
57
|
}
|
|
57
58
|
else if (isUint8ArrayList(buf)) {
|
|
58
|
-
length += buf.
|
|
59
|
+
length += buf.byteLength;
|
|
59
60
|
this.bufs = this.bufs.concat(buf.bufs);
|
|
60
61
|
}
|
|
61
62
|
else {
|
|
@@ -68,14 +69,14 @@ export class Uint8ArrayList {
|
|
|
68
69
|
* Read the value at `index`
|
|
69
70
|
*/
|
|
70
71
|
get(index) {
|
|
71
|
-
const res = findBufAndOffset(this.bufs, index
|
|
72
|
+
const res = findBufAndOffset(this.bufs, index);
|
|
72
73
|
return res.buf[res.index];
|
|
73
74
|
}
|
|
74
75
|
/**
|
|
75
76
|
* Set the value at `index` to `value`
|
|
76
77
|
*/
|
|
77
78
|
set(index, value) {
|
|
78
|
-
const res = findBufAndOffset(this.bufs, index
|
|
79
|
+
const res = findBufAndOffset(this.bufs, index);
|
|
79
80
|
res.buf[res.index] = value;
|
|
80
81
|
}
|
|
81
82
|
/**
|
|
@@ -130,7 +131,7 @@ export class Uint8ArrayList {
|
|
|
130
131
|
return concat(bufs, length);
|
|
131
132
|
}
|
|
132
133
|
/**
|
|
133
|
-
* Returns a
|
|
134
|
+
* Returns a alloc from the given start and end element index.
|
|
134
135
|
*
|
|
135
136
|
* In the best case where the data extracted comes from a single Uint8Array
|
|
136
137
|
* internally this is a no-copy operation otherwise it is a copy operation.
|
|
@@ -143,22 +144,21 @@ export class Uint8ArrayList {
|
|
|
143
144
|
return concat(bufs, length);
|
|
144
145
|
}
|
|
145
146
|
/**
|
|
146
|
-
* Returns a
|
|
147
|
+
* Returns a allocList from the given start and end element index.
|
|
147
148
|
*
|
|
148
149
|
* This is a no-copy operation.
|
|
149
150
|
*/
|
|
150
151
|
sublist(beginInclusive, endExclusive) {
|
|
151
|
-
const { bufs } = this._subList(beginInclusive, endExclusive);
|
|
152
|
+
const { bufs, length } = this._subList(beginInclusive, endExclusive);
|
|
152
153
|
const list = new Uint8ArrayList();
|
|
153
|
-
list.
|
|
154
|
+
list.length = length;
|
|
155
|
+
// don't loop, just set the bufs
|
|
156
|
+
list.bufs = bufs;
|
|
154
157
|
return list;
|
|
155
158
|
}
|
|
156
159
|
_subList(beginInclusive, endExclusive) {
|
|
157
|
-
if (beginInclusive == null && endExclusive == null) {
|
|
158
|
-
return { bufs: this.bufs, length: this.length };
|
|
159
|
-
}
|
|
160
160
|
beginInclusive = beginInclusive ?? 0;
|
|
161
|
-
endExclusive = endExclusive ??
|
|
161
|
+
endExclusive = endExclusive ?? this.length;
|
|
162
162
|
if (beginInclusive < 0) {
|
|
163
163
|
beginInclusive = this.length + beginInclusive;
|
|
164
164
|
}
|
|
@@ -166,151 +166,172 @@ export class Uint8ArrayList {
|
|
|
166
166
|
endExclusive = this.length + endExclusive;
|
|
167
167
|
}
|
|
168
168
|
if (beginInclusive < 0 || endExclusive > this.length) {
|
|
169
|
-
throw new RangeError('index out of bounds');
|
|
169
|
+
throw new RangeError('index is out of bounds');
|
|
170
170
|
}
|
|
171
171
|
if (beginInclusive === endExclusive) {
|
|
172
172
|
return { bufs: [], length: 0 };
|
|
173
173
|
}
|
|
174
|
+
if (beginInclusive === 0 && endExclusive === this.length) {
|
|
175
|
+
return { bufs: this.bufs, length: this.length };
|
|
176
|
+
}
|
|
174
177
|
const bufs = [];
|
|
175
178
|
let offset = 0;
|
|
176
|
-
for (
|
|
179
|
+
for (let i = 0; i < this.bufs.length; i++) {
|
|
180
|
+
const buf = this.bufs[i];
|
|
177
181
|
const bufStart = offset;
|
|
178
182
|
const bufEnd = bufStart + buf.byteLength;
|
|
179
|
-
|
|
180
|
-
const sliceEndsInBuf = endExclusive > bufStart && endExclusive <= bufEnd;
|
|
181
|
-
const bufInSlice = beginInclusive < bufStart && endExclusive >= bufEnd;
|
|
183
|
+
// for next loop
|
|
182
184
|
offset = bufEnd;
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
startIndex = beginInclusive - bufStart;
|
|
187
|
-
endIndex = buf.byteLength;
|
|
185
|
+
if (beginInclusive >= bufEnd) {
|
|
186
|
+
// start after this buf
|
|
187
|
+
continue;
|
|
188
188
|
}
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
189
|
+
const sliceStartInBuf = beginInclusive >= bufStart && beginInclusive < bufEnd;
|
|
190
|
+
const sliceEndsInBuf = endExclusive > bufStart && endExclusive <= bufEnd;
|
|
191
|
+
if (sliceStartInBuf && sliceEndsInBuf) {
|
|
192
|
+
// slice is wholly contained within this buffer
|
|
193
|
+
if (beginInclusive === bufStart && endExclusive === bufEnd) {
|
|
194
|
+
// requested whole buffer
|
|
195
|
+
bufs.push(buf);
|
|
196
|
+
break;
|
|
193
197
|
}
|
|
198
|
+
// requested part of buffer
|
|
199
|
+
const start = beginInclusive - bufStart;
|
|
200
|
+
bufs.push(buf.subarray(start, start + (endExclusive - beginInclusive)));
|
|
201
|
+
break;
|
|
194
202
|
}
|
|
195
|
-
if (
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
203
|
+
if (sliceStartInBuf) {
|
|
204
|
+
// slice starts in this buffer
|
|
205
|
+
if (beginInclusive === 0) {
|
|
206
|
+
// requested whole buffer
|
|
207
|
+
bufs.push(buf);
|
|
208
|
+
continue;
|
|
209
|
+
}
|
|
210
|
+
// requested part of buffer
|
|
211
|
+
bufs.push(buf.subarray(beginInclusive - bufStart));
|
|
212
|
+
continue;
|
|
201
213
|
}
|
|
202
214
|
if (sliceEndsInBuf) {
|
|
215
|
+
if (endExclusive === bufEnd) {
|
|
216
|
+
// requested whole buffer
|
|
217
|
+
bufs.push(buf);
|
|
218
|
+
break;
|
|
219
|
+
}
|
|
220
|
+
// requested part of buffer
|
|
221
|
+
bufs.push(buf.subarray(0, endExclusive - bufStart));
|
|
203
222
|
break;
|
|
204
223
|
}
|
|
224
|
+
// slice started before this buffer and ends after it
|
|
225
|
+
bufs.push(buf);
|
|
205
226
|
}
|
|
206
227
|
return { bufs, length: endExclusive - beginInclusive };
|
|
207
228
|
}
|
|
208
229
|
getInt8(byteOffset) {
|
|
209
|
-
const buf = this.
|
|
230
|
+
const buf = this.subarray(byteOffset, byteOffset + 1);
|
|
210
231
|
const view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength);
|
|
211
232
|
return view.getInt8(0);
|
|
212
233
|
}
|
|
213
234
|
setInt8(byteOffset, value) {
|
|
214
|
-
const buf =
|
|
235
|
+
const buf = allocUnsafe(1);
|
|
215
236
|
const view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength);
|
|
216
237
|
view.setInt8(0, value);
|
|
217
238
|
this.write(buf, byteOffset);
|
|
218
239
|
}
|
|
219
240
|
getInt16(byteOffset, littleEndian) {
|
|
220
|
-
const buf = this.
|
|
241
|
+
const buf = this.subarray(byteOffset, byteOffset + 2);
|
|
221
242
|
const view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength);
|
|
222
243
|
return view.getInt16(0, littleEndian);
|
|
223
244
|
}
|
|
224
245
|
setInt16(byteOffset, value, littleEndian) {
|
|
225
|
-
const buf =
|
|
246
|
+
const buf = alloc(2);
|
|
226
247
|
const view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength);
|
|
227
248
|
view.setInt16(0, value, littleEndian);
|
|
228
249
|
this.write(buf, byteOffset);
|
|
229
250
|
}
|
|
230
251
|
getInt32(byteOffset, littleEndian) {
|
|
231
|
-
const buf = this.
|
|
252
|
+
const buf = this.subarray(byteOffset, byteOffset + 4);
|
|
232
253
|
const view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength);
|
|
233
254
|
return view.getInt32(0, littleEndian);
|
|
234
255
|
}
|
|
235
256
|
setInt32(byteOffset, value, littleEndian) {
|
|
236
|
-
const buf =
|
|
257
|
+
const buf = alloc(4);
|
|
237
258
|
const view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength);
|
|
238
259
|
view.setInt32(0, value, littleEndian);
|
|
239
260
|
this.write(buf, byteOffset);
|
|
240
261
|
}
|
|
241
262
|
getBigInt64(byteOffset, littleEndian) {
|
|
242
|
-
const buf = this.
|
|
263
|
+
const buf = this.subarray(byteOffset, byteOffset + 8);
|
|
243
264
|
const view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength);
|
|
244
265
|
return view.getBigInt64(0, littleEndian);
|
|
245
266
|
}
|
|
246
267
|
setBigInt64(byteOffset, value, littleEndian) {
|
|
247
|
-
const buf =
|
|
268
|
+
const buf = alloc(8);
|
|
248
269
|
const view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength);
|
|
249
270
|
view.setBigInt64(0, value, littleEndian);
|
|
250
271
|
this.write(buf, byteOffset);
|
|
251
272
|
}
|
|
252
273
|
getUint8(byteOffset) {
|
|
253
|
-
const buf = this.
|
|
274
|
+
const buf = this.subarray(byteOffset, byteOffset + 1);
|
|
254
275
|
const view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength);
|
|
255
276
|
return view.getUint8(0);
|
|
256
277
|
}
|
|
257
278
|
setUint8(byteOffset, value) {
|
|
258
|
-
const buf =
|
|
279
|
+
const buf = allocUnsafe(1);
|
|
259
280
|
const view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength);
|
|
260
281
|
view.setUint8(0, value);
|
|
261
282
|
this.write(buf, byteOffset);
|
|
262
283
|
}
|
|
263
284
|
getUint16(byteOffset, littleEndian) {
|
|
264
|
-
const buf = this.
|
|
285
|
+
const buf = this.subarray(byteOffset, byteOffset + 2);
|
|
265
286
|
const view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength);
|
|
266
287
|
return view.getUint16(0, littleEndian);
|
|
267
288
|
}
|
|
268
289
|
setUint16(byteOffset, value, littleEndian) {
|
|
269
|
-
const buf =
|
|
290
|
+
const buf = alloc(2);
|
|
270
291
|
const view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength);
|
|
271
292
|
view.setUint16(0, value, littleEndian);
|
|
272
293
|
this.write(buf, byteOffset);
|
|
273
294
|
}
|
|
274
295
|
getUint32(byteOffset, littleEndian) {
|
|
275
|
-
const buf = this.
|
|
296
|
+
const buf = this.subarray(byteOffset, byteOffset + 4);
|
|
276
297
|
const view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength);
|
|
277
298
|
return view.getUint32(0, littleEndian);
|
|
278
299
|
}
|
|
279
300
|
setUint32(byteOffset, value, littleEndian) {
|
|
280
|
-
const buf =
|
|
301
|
+
const buf = alloc(4);
|
|
281
302
|
const view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength);
|
|
282
303
|
view.setUint32(0, value, littleEndian);
|
|
283
304
|
this.write(buf, byteOffset);
|
|
284
305
|
}
|
|
285
306
|
getBigUint64(byteOffset, littleEndian) {
|
|
286
|
-
const buf = this.
|
|
307
|
+
const buf = this.subarray(byteOffset, byteOffset + 8);
|
|
287
308
|
const view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength);
|
|
288
309
|
return view.getBigUint64(0, littleEndian);
|
|
289
310
|
}
|
|
290
311
|
setBigUint64(byteOffset, value, littleEndian) {
|
|
291
|
-
const buf =
|
|
312
|
+
const buf = alloc(8);
|
|
292
313
|
const view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength);
|
|
293
314
|
view.setBigUint64(0, value, littleEndian);
|
|
294
315
|
this.write(buf, byteOffset);
|
|
295
316
|
}
|
|
296
317
|
getFloat32(byteOffset, littleEndian) {
|
|
297
|
-
const buf = this.
|
|
318
|
+
const buf = this.subarray(byteOffset, byteOffset + 4);
|
|
298
319
|
const view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength);
|
|
299
320
|
return view.getFloat32(0, littleEndian);
|
|
300
321
|
}
|
|
301
322
|
setFloat32(byteOffset, value, littleEndian) {
|
|
302
|
-
const buf =
|
|
323
|
+
const buf = alloc(4);
|
|
303
324
|
const view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength);
|
|
304
325
|
view.setFloat32(0, value, littleEndian);
|
|
305
326
|
this.write(buf, byteOffset);
|
|
306
327
|
}
|
|
307
328
|
getFloat64(byteOffset, littleEndian) {
|
|
308
|
-
const buf = this.
|
|
329
|
+
const buf = this.subarray(byteOffset, byteOffset + 8);
|
|
309
330
|
const view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength);
|
|
310
331
|
return view.getFloat64(0, littleEndian);
|
|
311
332
|
}
|
|
312
333
|
setFloat64(byteOffset, value, littleEndian) {
|
|
313
|
-
const buf =
|
|
334
|
+
const buf = alloc(8);
|
|
314
335
|
const view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength);
|
|
315
336
|
view.setFloat64(0, value, littleEndian);
|
|
316
337
|
this.write(buf, byteOffset);
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "uint8arraylist",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.3",
|
|
4
4
|
"description": "Append and consume bytes using only no-copy operations",
|
|
5
5
|
"author": "Alex Potsides <alex@achingbrain.net>",
|
|
6
6
|
"license": "Apache-2.0 OR MIT",
|
|
@@ -136,10 +136,11 @@
|
|
|
136
136
|
"release": "aegir release"
|
|
137
137
|
},
|
|
138
138
|
"dependencies": {
|
|
139
|
-
"uint8arrays": "^3.
|
|
139
|
+
"uint8arrays": "^3.1.0"
|
|
140
140
|
},
|
|
141
141
|
"devDependencies": {
|
|
142
142
|
"aegir": "^37.4.6",
|
|
143
|
+
"benchmark": "^2.1.4",
|
|
143
144
|
"bl": "^5.0.0",
|
|
144
145
|
"it-all": "^1.0.6"
|
|
145
146
|
}
|
package/src/index.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { concat } from 'uint8arrays/concat'
|
|
2
2
|
import { equals } from 'uint8arrays/equals'
|
|
3
|
+
import { allocUnsafe, alloc } from 'uint8arrays/alloc'
|
|
3
4
|
|
|
4
5
|
const symbol = Symbol.for('@achingbrain/uint8arraylist')
|
|
5
6
|
|
|
6
7
|
type Appendable = Uint8ArrayList | Uint8Array
|
|
7
8
|
|
|
8
|
-
function findBufAndOffset (bufs: Uint8Array[], index: number
|
|
9
|
-
if (index == null || index < 0
|
|
9
|
+
function findBufAndOffset (bufs: Uint8Array[], index: number) {
|
|
10
|
+
if (index == null || index < 0) {
|
|
10
11
|
throw new RangeError('index is out of bounds')
|
|
11
12
|
}
|
|
12
13
|
|
|
@@ -75,7 +76,7 @@ export class Uint8ArrayList implements Iterable<Uint8Array> {
|
|
|
75
76
|
length += buf.byteLength
|
|
76
77
|
this.bufs.push(buf)
|
|
77
78
|
} else if (isUint8ArrayList(buf)) {
|
|
78
|
-
length += buf.
|
|
79
|
+
length += buf.byteLength
|
|
79
80
|
this.bufs = this.bufs.concat(buf.bufs)
|
|
80
81
|
} else {
|
|
81
82
|
throw new Error('Could not append value, must be an Uint8Array or a Uint8ArrayList')
|
|
@@ -89,7 +90,7 @@ export class Uint8ArrayList implements Iterable<Uint8Array> {
|
|
|
89
90
|
* Read the value at `index`
|
|
90
91
|
*/
|
|
91
92
|
get (index: number) {
|
|
92
|
-
const res = findBufAndOffset(this.bufs, index
|
|
93
|
+
const res = findBufAndOffset(this.bufs, index)
|
|
93
94
|
|
|
94
95
|
return res.buf[res.index]
|
|
95
96
|
}
|
|
@@ -98,7 +99,7 @@ export class Uint8ArrayList implements Iterable<Uint8Array> {
|
|
|
98
99
|
* Set the value at `index` to `value`
|
|
99
100
|
*/
|
|
100
101
|
set (index: number, value: number) {
|
|
101
|
-
const res = findBufAndOffset(this.bufs, index
|
|
102
|
+
const res = findBufAndOffset(this.bufs, index)
|
|
102
103
|
|
|
103
104
|
res.buf[res.index] = value
|
|
104
105
|
}
|
|
@@ -158,7 +159,7 @@ export class Uint8ArrayList implements Iterable<Uint8Array> {
|
|
|
158
159
|
}
|
|
159
160
|
|
|
160
161
|
/**
|
|
161
|
-
* Returns a
|
|
162
|
+
* Returns a alloc from the given start and end element index.
|
|
162
163
|
*
|
|
163
164
|
* In the best case where the data extracted comes from a single Uint8Array
|
|
164
165
|
* internally this is a no-copy operation otherwise it is a copy operation.
|
|
@@ -174,26 +175,24 @@ export class Uint8ArrayList implements Iterable<Uint8Array> {
|
|
|
174
175
|
}
|
|
175
176
|
|
|
176
177
|
/**
|
|
177
|
-
* Returns a
|
|
178
|
+
* Returns a allocList from the given start and end element index.
|
|
178
179
|
*
|
|
179
180
|
* This is a no-copy operation.
|
|
180
181
|
*/
|
|
181
182
|
sublist (beginInclusive?: number, endExclusive?: number): Uint8ArrayList {
|
|
182
|
-
const { bufs } = this._subList(beginInclusive, endExclusive)
|
|
183
|
+
const { bufs, length } = this._subList(beginInclusive, endExclusive)
|
|
183
184
|
|
|
184
185
|
const list = new Uint8ArrayList()
|
|
185
|
-
list.
|
|
186
|
+
list.length = length
|
|
187
|
+
// don't loop, just set the bufs
|
|
188
|
+
list.bufs = bufs
|
|
186
189
|
|
|
187
190
|
return list
|
|
188
191
|
}
|
|
189
192
|
|
|
190
193
|
private _subList (beginInclusive?: number, endExclusive?: number) {
|
|
191
|
-
if (beginInclusive == null && endExclusive == null) {
|
|
192
|
-
return { bufs: this.bufs, length: this.length }
|
|
193
|
-
}
|
|
194
|
-
|
|
195
194
|
beginInclusive = beginInclusive ?? 0
|
|
196
|
-
endExclusive = endExclusive ??
|
|
195
|
+
endExclusive = endExclusive ?? this.length
|
|
197
196
|
|
|
198
197
|
if (beginInclusive < 0) {
|
|
199
198
|
beginInclusive = this.length + beginInclusive
|
|
@@ -204,66 +203,91 @@ export class Uint8ArrayList implements Iterable<Uint8Array> {
|
|
|
204
203
|
}
|
|
205
204
|
|
|
206
205
|
if (beginInclusive < 0 || endExclusive > this.length) {
|
|
207
|
-
throw new RangeError('index out of bounds')
|
|
206
|
+
throw new RangeError('index is out of bounds')
|
|
208
207
|
}
|
|
209
208
|
|
|
210
209
|
if (beginInclusive === endExclusive) {
|
|
211
210
|
return { bufs: [], length: 0 }
|
|
212
211
|
}
|
|
213
212
|
|
|
213
|
+
if (beginInclusive === 0 && endExclusive === this.length) {
|
|
214
|
+
return { bufs: this.bufs, length: this.length }
|
|
215
|
+
}
|
|
216
|
+
|
|
214
217
|
const bufs: Uint8Array[] = []
|
|
215
218
|
let offset = 0
|
|
216
219
|
|
|
217
|
-
for (
|
|
220
|
+
for (let i = 0; i < this.bufs.length; i++) {
|
|
221
|
+
const buf = this.bufs[i]
|
|
218
222
|
const bufStart = offset
|
|
219
223
|
const bufEnd = bufStart + buf.byteLength
|
|
220
|
-
const sliceStartInBuf = beginInclusive >= bufStart && beginInclusive < bufEnd
|
|
221
|
-
const sliceEndsInBuf = endExclusive > bufStart && endExclusive <= bufEnd
|
|
222
|
-
const bufInSlice = beginInclusive < bufStart && endExclusive >= bufEnd
|
|
223
|
-
offset = bufEnd
|
|
224
224
|
|
|
225
|
-
|
|
226
|
-
|
|
225
|
+
// for next loop
|
|
226
|
+
offset = bufEnd
|
|
227
227
|
|
|
228
|
-
if (
|
|
229
|
-
|
|
230
|
-
|
|
228
|
+
if (beginInclusive >= bufEnd) {
|
|
229
|
+
// start after this buf
|
|
230
|
+
continue
|
|
231
231
|
}
|
|
232
232
|
|
|
233
|
-
|
|
234
|
-
|
|
233
|
+
const sliceStartInBuf = beginInclusive >= bufStart && beginInclusive < bufEnd
|
|
234
|
+
const sliceEndsInBuf = endExclusive > bufStart && endExclusive <= bufEnd
|
|
235
235
|
|
|
236
|
-
|
|
237
|
-
|
|
236
|
+
if (sliceStartInBuf && sliceEndsInBuf) {
|
|
237
|
+
// slice is wholly contained within this buffer
|
|
238
|
+
if (beginInclusive === bufStart && endExclusive === bufEnd) {
|
|
239
|
+
// requested whole buffer
|
|
240
|
+
bufs.push(buf)
|
|
241
|
+
break
|
|
238
242
|
}
|
|
239
|
-
}
|
|
240
243
|
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
+
// requested part of buffer
|
|
245
|
+
const start = beginInclusive - bufStart
|
|
246
|
+
bufs.push(buf.subarray(start, start + (endExclusive - beginInclusive)))
|
|
247
|
+
break
|
|
244
248
|
}
|
|
245
249
|
|
|
246
|
-
if (
|
|
247
|
-
|
|
250
|
+
if (sliceStartInBuf) {
|
|
251
|
+
// slice starts in this buffer
|
|
252
|
+
if (beginInclusive === 0) {
|
|
253
|
+
// requested whole buffer
|
|
254
|
+
bufs.push(buf)
|
|
255
|
+
continue
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
// requested part of buffer
|
|
259
|
+
bufs.push(buf.subarray(beginInclusive - bufStart))
|
|
260
|
+
continue
|
|
248
261
|
}
|
|
249
262
|
|
|
250
263
|
if (sliceEndsInBuf) {
|
|
264
|
+
if (endExclusive === bufEnd) {
|
|
265
|
+
// requested whole buffer
|
|
266
|
+
bufs.push(buf)
|
|
267
|
+
break
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
// requested part of buffer
|
|
271
|
+
bufs.push(buf.subarray(0, endExclusive - bufStart))
|
|
251
272
|
break
|
|
252
273
|
}
|
|
274
|
+
|
|
275
|
+
// slice started before this buffer and ends after it
|
|
276
|
+
bufs.push(buf)
|
|
253
277
|
}
|
|
254
278
|
|
|
255
279
|
return { bufs, length: endExclusive - beginInclusive }
|
|
256
280
|
}
|
|
257
281
|
|
|
258
282
|
getInt8 (byteOffset: number): number {
|
|
259
|
-
const buf = this.
|
|
283
|
+
const buf = this.subarray(byteOffset, byteOffset + 1)
|
|
260
284
|
const view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength)
|
|
261
285
|
|
|
262
286
|
return view.getInt8(0)
|
|
263
287
|
}
|
|
264
288
|
|
|
265
289
|
setInt8 (byteOffset: number, value: number): void {
|
|
266
|
-
const buf =
|
|
290
|
+
const buf = allocUnsafe(1)
|
|
267
291
|
const view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength)
|
|
268
292
|
view.setInt8(0, value)
|
|
269
293
|
|
|
@@ -271,14 +295,14 @@ export class Uint8ArrayList implements Iterable<Uint8Array> {
|
|
|
271
295
|
}
|
|
272
296
|
|
|
273
297
|
getInt16 (byteOffset: number, littleEndian?: boolean): number {
|
|
274
|
-
const buf = this.
|
|
298
|
+
const buf = this.subarray(byteOffset, byteOffset + 2)
|
|
275
299
|
const view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength)
|
|
276
300
|
|
|
277
301
|
return view.getInt16(0, littleEndian)
|
|
278
302
|
}
|
|
279
303
|
|
|
280
304
|
setInt16 (byteOffset: number, value: number, littleEndian?: boolean): void {
|
|
281
|
-
const buf =
|
|
305
|
+
const buf = alloc(2)
|
|
282
306
|
const view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength)
|
|
283
307
|
view.setInt16(0, value, littleEndian)
|
|
284
308
|
|
|
@@ -286,14 +310,14 @@ export class Uint8ArrayList implements Iterable<Uint8Array> {
|
|
|
286
310
|
}
|
|
287
311
|
|
|
288
312
|
getInt32 (byteOffset: number, littleEndian?: boolean): number {
|
|
289
|
-
const buf = this.
|
|
313
|
+
const buf = this.subarray(byteOffset, byteOffset + 4)
|
|
290
314
|
const view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength)
|
|
291
315
|
|
|
292
316
|
return view.getInt32(0, littleEndian)
|
|
293
317
|
}
|
|
294
318
|
|
|
295
319
|
setInt32 (byteOffset: number, value: number, littleEndian?: boolean): void {
|
|
296
|
-
const buf =
|
|
320
|
+
const buf = alloc(4)
|
|
297
321
|
const view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength)
|
|
298
322
|
view.setInt32(0, value, littleEndian)
|
|
299
323
|
|
|
@@ -301,14 +325,14 @@ export class Uint8ArrayList implements Iterable<Uint8Array> {
|
|
|
301
325
|
}
|
|
302
326
|
|
|
303
327
|
getBigInt64 (byteOffset: number, littleEndian?: boolean): bigint {
|
|
304
|
-
const buf = this.
|
|
328
|
+
const buf = this.subarray(byteOffset, byteOffset + 8)
|
|
305
329
|
const view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength)
|
|
306
330
|
|
|
307
331
|
return view.getBigInt64(0, littleEndian)
|
|
308
332
|
}
|
|
309
333
|
|
|
310
334
|
setBigInt64 (byteOffset: number, value: bigint, littleEndian?: boolean): void {
|
|
311
|
-
const buf =
|
|
335
|
+
const buf = alloc(8)
|
|
312
336
|
const view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength)
|
|
313
337
|
view.setBigInt64(0, value, littleEndian)
|
|
314
338
|
|
|
@@ -316,14 +340,14 @@ export class Uint8ArrayList implements Iterable<Uint8Array> {
|
|
|
316
340
|
}
|
|
317
341
|
|
|
318
342
|
getUint8 (byteOffset: number): number {
|
|
319
|
-
const buf = this.
|
|
343
|
+
const buf = this.subarray(byteOffset, byteOffset + 1)
|
|
320
344
|
const view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength)
|
|
321
345
|
|
|
322
346
|
return view.getUint8(0)
|
|
323
347
|
}
|
|
324
348
|
|
|
325
349
|
setUint8 (byteOffset: number, value: number): void {
|
|
326
|
-
const buf =
|
|
350
|
+
const buf = allocUnsafe(1)
|
|
327
351
|
const view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength)
|
|
328
352
|
view.setUint8(0, value)
|
|
329
353
|
|
|
@@ -331,14 +355,14 @@ export class Uint8ArrayList implements Iterable<Uint8Array> {
|
|
|
331
355
|
}
|
|
332
356
|
|
|
333
357
|
getUint16 (byteOffset: number, littleEndian?: boolean): number {
|
|
334
|
-
const buf = this.
|
|
358
|
+
const buf = this.subarray(byteOffset, byteOffset + 2)
|
|
335
359
|
const view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength)
|
|
336
360
|
|
|
337
361
|
return view.getUint16(0, littleEndian)
|
|
338
362
|
}
|
|
339
363
|
|
|
340
364
|
setUint16 (byteOffset: number, value: number, littleEndian?: boolean): void {
|
|
341
|
-
const buf =
|
|
365
|
+
const buf = alloc(2)
|
|
342
366
|
const view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength)
|
|
343
367
|
view.setUint16(0, value, littleEndian)
|
|
344
368
|
|
|
@@ -346,14 +370,14 @@ export class Uint8ArrayList implements Iterable<Uint8Array> {
|
|
|
346
370
|
}
|
|
347
371
|
|
|
348
372
|
getUint32 (byteOffset: number, littleEndian?: boolean): number {
|
|
349
|
-
const buf = this.
|
|
373
|
+
const buf = this.subarray(byteOffset, byteOffset + 4)
|
|
350
374
|
const view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength)
|
|
351
375
|
|
|
352
376
|
return view.getUint32(0, littleEndian)
|
|
353
377
|
}
|
|
354
378
|
|
|
355
379
|
setUint32 (byteOffset: number, value: number, littleEndian?: boolean): void {
|
|
356
|
-
const buf =
|
|
380
|
+
const buf = alloc(4)
|
|
357
381
|
const view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength)
|
|
358
382
|
view.setUint32(0, value, littleEndian)
|
|
359
383
|
|
|
@@ -361,14 +385,14 @@ export class Uint8ArrayList implements Iterable<Uint8Array> {
|
|
|
361
385
|
}
|
|
362
386
|
|
|
363
387
|
getBigUint64 (byteOffset: number, littleEndian?: boolean): bigint {
|
|
364
|
-
const buf = this.
|
|
388
|
+
const buf = this.subarray(byteOffset, byteOffset + 8)
|
|
365
389
|
const view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength)
|
|
366
390
|
|
|
367
391
|
return view.getBigUint64(0, littleEndian)
|
|
368
392
|
}
|
|
369
393
|
|
|
370
394
|
setBigUint64 (byteOffset: number, value: bigint, littleEndian?: boolean): void {
|
|
371
|
-
const buf =
|
|
395
|
+
const buf = alloc(8)
|
|
372
396
|
const view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength)
|
|
373
397
|
view.setBigUint64(0, value, littleEndian)
|
|
374
398
|
|
|
@@ -376,14 +400,14 @@ export class Uint8ArrayList implements Iterable<Uint8Array> {
|
|
|
376
400
|
}
|
|
377
401
|
|
|
378
402
|
getFloat32 (byteOffset: number, littleEndian?: boolean): number {
|
|
379
|
-
const buf = this.
|
|
403
|
+
const buf = this.subarray(byteOffset, byteOffset + 4)
|
|
380
404
|
const view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength)
|
|
381
405
|
|
|
382
406
|
return view.getFloat32(0, littleEndian)
|
|
383
407
|
}
|
|
384
408
|
|
|
385
409
|
setFloat32 (byteOffset: number, value: number, littleEndian?: boolean): void {
|
|
386
|
-
const buf =
|
|
410
|
+
const buf = alloc(4)
|
|
387
411
|
const view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength)
|
|
388
412
|
view.setFloat32(0, value, littleEndian)
|
|
389
413
|
|
|
@@ -391,14 +415,14 @@ export class Uint8ArrayList implements Iterable<Uint8Array> {
|
|
|
391
415
|
}
|
|
392
416
|
|
|
393
417
|
getFloat64 (byteOffset: number, littleEndian?: boolean): number {
|
|
394
|
-
const buf = this.
|
|
418
|
+
const buf = this.subarray(byteOffset, byteOffset + 8)
|
|
395
419
|
const view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength)
|
|
396
420
|
|
|
397
421
|
return view.getFloat64(0, littleEndian)
|
|
398
422
|
}
|
|
399
423
|
|
|
400
424
|
setFloat64 (byteOffset: number, value: number, littleEndian?: boolean): void {
|
|
401
|
-
const buf =
|
|
425
|
+
const buf = alloc(8)
|
|
402
426
|
const view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength)
|
|
403
427
|
view.setFloat64(0, value, littleEndian)
|
|
404
428
|
|