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.
@@ -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 new Uint8Array from the given start and end element index.
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 new Uint8ArrayList from the given start and end element index.
51
+ * Returns a allocList from the given start and end element index.
52
52
  *
53
53
  * This is a no-copy operation.
54
54
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAMA,aAAK,UAAU,GAAG,cAAc,GAAG,UAAU,CAAA;AAyB7C;;GAEG;AACH,wBAAgB,gBAAgB,CAAE,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,cAAc,CAErE;AAED,qBAAa,cAAe,YAAW,QAAQ,CAAC,UAAU,CAAC;IACzD,OAAO,CAAC,IAAI,CAAc;IACnB,MAAM,EAAE,MAAM,CAAA;gBAER,GAAG,IAAI,EAAE,UAAU,EAAE;IAUhC,CAAC,MAAM,CAAC,QAAQ,CAAC;IAInB,IAAI,UAAU,WAEb;IAED;;OAEG;IACH,MAAM,CAAE,GAAG,IAAI,EAAE,UAAU,EAAE;IAI7B;;OAEG;IACH,SAAS,CAAE,IAAI,EAAE,UAAU,EAAE;IAkB7B;;OAEG;IACH,GAAG,CAAE,KAAK,EAAE,MAAM;IAMlB;;OAEG;IACH,GAAG,CAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAMjC;;OAEG;IACH,KAAK,CAAE,GAAG,EAAE,UAAU,EAAE,MAAM,GAAE,MAAU;IAc1C;;OAEG;IACH,OAAO,CAAE,KAAK,EAAE,MAAM;IAsBtB;;;;;OAKG;IACH,KAAK,CAAE,cAAc,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,UAAU;IAMlE;;;;;OAKG;IACH,QAAQ,CAAE,cAAc,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,UAAU;IAUrE;;;;OAIG;IACH,OAAO,CAAE,cAAc,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,cAAc;IAWxE,OAAO,CAAC,QAAQ;IAyFhB,OAAO,CAAE,UAAU,EAAE,MAAM,GAAG,MAAM;IAOpC,OAAO,CAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAQjD,QAAQ,CAAE,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM;IAO7D,QAAQ,CAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,IAAI;IAQ1E,QAAQ,CAAE,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM;IAO7D,QAAQ,CAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,IAAI;IAQ1E,WAAW,CAAE,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM;IAOhE,WAAW,CAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,IAAI;IAQ7E,QAAQ,CAAE,UAAU,EAAE,MAAM,GAAG,MAAM;IAOrC,QAAQ,CAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAQlD,SAAS,CAAE,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM;IAO9D,SAAS,CAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,IAAI;IAQ3E,SAAS,CAAE,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM;IAO9D,SAAS,CAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,IAAI;IAQ3E,YAAY,CAAE,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM;IAOjE,YAAY,CAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,IAAI;IAQ9E,UAAU,CAAE,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM;IAO/D,UAAU,CAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,IAAI;IAQ5E,UAAU,CAAE,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,MAAM;IAO/D,UAAU,CAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,IAAI;IAQ5E,MAAM,CAAE,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,cAAc;CAqB7C"}
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, totalLength) {
5
- if (index == null || index < 0 || index >= totalLength) {
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.length;
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, this.length);
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, this.length);
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 new Uint8Array from the given start and end element index.
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 new Uint8ArrayList from the given start and end element index.
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.appendAll(bufs);
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 ?? (this.length > 0 ? this.length : 0);
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 (const buf of this.bufs) {
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
- const sliceStartInBuf = beginInclusive >= bufStart && beginInclusive < bufEnd;
180
- const sliceEndsInBuf = endExclusive > bufStart && endExclusive <= bufEnd;
181
- const bufInSlice = beginInclusive < bufStart && endExclusive >= bufEnd;
183
+ // for next loop
182
184
  offset = bufEnd;
183
- let startIndex;
184
- let endIndex;
185
- if (sliceStartInBuf) {
186
- startIndex = beginInclusive - bufStart;
187
- endIndex = buf.byteLength;
185
+ if (beginInclusive >= bufEnd) {
186
+ // start after this buf
187
+ continue;
188
188
  }
189
- if (sliceEndsInBuf) {
190
- endIndex = endExclusive - bufStart;
191
- if (startIndex == null) {
192
- startIndex = 0;
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 (bufInSlice) {
196
- startIndex = 0;
197
- endIndex = buf.byteLength;
198
- }
199
- if (startIndex != null && endIndex != null) {
200
- bufs.push(buf.subarray(startIndex, endIndex));
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.slice(byteOffset, byteOffset + 1);
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 = new Uint8Array(1);
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.slice(byteOffset, byteOffset + 2);
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 = new Uint8Array(2);
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.slice(byteOffset, byteOffset + 4);
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 = new Uint8Array(4);
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.slice(byteOffset, byteOffset + 8);
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 = new Uint8Array(8);
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.slice(byteOffset, byteOffset + 1);
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 = new Uint8Array(1);
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.slice(byteOffset, byteOffset + 2);
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 = new Uint8Array(2);
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.slice(byteOffset, byteOffset + 4);
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 = new Uint8Array(4);
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.slice(byteOffset, byteOffset + 8);
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 = new Uint8Array(8);
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.slice(byteOffset, byteOffset + 4);
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 = new Uint8Array(4);
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.slice(byteOffset, byteOffset + 8);
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 = new Uint8Array(8);
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);
@@ -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.0",
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.0.0"
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, totalLength: number) {
9
- if (index == null || index < 0 || index >= totalLength) {
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.length
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, this.length)
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, this.length)
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 new Uint8Array from the given start and end element index.
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 new Uint8ArrayList from the given start and end element index.
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.appendAll(bufs)
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 ?? (this.length > 0 ? this.length : 0)
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 (const buf of this.bufs) {
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
- let startIndex: number | undefined
226
- let endIndex: number | undefined
225
+ // for next loop
226
+ offset = bufEnd
227
227
 
228
- if (sliceStartInBuf) {
229
- startIndex = beginInclusive - bufStart
230
- endIndex = buf.byteLength
228
+ if (beginInclusive >= bufEnd) {
229
+ // start after this buf
230
+ continue
231
231
  }
232
232
 
233
- if (sliceEndsInBuf) {
234
- endIndex = endExclusive - bufStart
233
+ const sliceStartInBuf = beginInclusive >= bufStart && beginInclusive < bufEnd
234
+ const sliceEndsInBuf = endExclusive > bufStart && endExclusive <= bufEnd
235
235
 
236
- if (startIndex == null) {
237
- startIndex = 0
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
- if (bufInSlice) {
242
- startIndex = 0
243
- endIndex = buf.byteLength
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 (startIndex != null && endIndex != null) {
247
- bufs.push(buf.subarray(startIndex, endIndex))
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.slice(byteOffset, byteOffset + 1)
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 = new Uint8Array(1)
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.slice(byteOffset, byteOffset + 2)
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 = new Uint8Array(2)
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.slice(byteOffset, byteOffset + 4)
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 = new Uint8Array(4)
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.slice(byteOffset, byteOffset + 8)
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 = new Uint8Array(8)
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.slice(byteOffset, byteOffset + 1)
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 = new Uint8Array(1)
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.slice(byteOffset, byteOffset + 2)
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 = new Uint8Array(2)
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.slice(byteOffset, byteOffset + 4)
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 = new Uint8Array(4)
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.slice(byteOffset, byteOffset + 8)
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 = new Uint8Array(8)
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.slice(byteOffset, byteOffset + 4)
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 = new Uint8Array(4)
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.slice(byteOffset, byteOffset + 8)
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 = new Uint8Array(8)
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