@fuman/io 0.0.1
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/LICENSE +8 -0
- package/_utils.cjs +23 -0
- package/_utils.d.ts +2 -0
- package/_utils.js +23 -0
- package/bits/index.d.ts +2 -0
- package/bits/reader.cjs +122 -0
- package/bits/reader.d.ts +15 -0
- package/bits/reader.js +122 -0
- package/bits/utils.cjs +49 -0
- package/bits/utils.d.ts +12 -0
- package/bits/utils.js +49 -0
- package/buf-reader.cjs +60 -0
- package/buf-reader.d.ts +9 -0
- package/buf-reader.js +60 -0
- package/bytes.cjs +114 -0
- package/bytes.d.ts +24 -0
- package/bytes.js +114 -0
- package/codec/delimiter.cjs +38 -0
- package/codec/delimiter.d.ts +22 -0
- package/codec/delimiter.js +38 -0
- package/codec/index.d.ts +6 -0
- package/codec/length-delimited.cjs +42 -0
- package/codec/length-delimited.d.ts +14 -0
- package/codec/length-delimited.js +42 -0
- package/codec/reader.cjs +51 -0
- package/codec/reader.d.ts +12 -0
- package/codec/reader.js +51 -0
- package/codec/text-delimiter.cjs +24 -0
- package/codec/text-delimiter.d.ts +11 -0
- package/codec/text-delimiter.js +24 -0
- package/codec/types.d.ts +16 -0
- package/codec/writer.cjs +24 -0
- package/codec/writer.d.ts +10 -0
- package/codec/writer.js +24 -0
- package/errors.cjs +9 -0
- package/errors.d.ts +9 -0
- package/errors.js +9 -0
- package/index.cjs +39 -0
- package/index.d.ts +12 -0
- package/index.js +39 -0
- package/package.json +29 -0
- package/read/adapters.cjs +90 -0
- package/read/adapters.d.ts +4 -0
- package/read/adapters.js +90 -0
- package/read/async/index.cjs +5 -0
- package/read/async/index.d.ts +1 -0
- package/read/async/index.js +5 -0
- package/read/async/strings.cjs +40 -0
- package/read/async/strings.d.ts +3 -0
- package/read/async/strings.js +40 -0
- package/read/index.cjs +40 -0
- package/read/index.d.ts +4 -0
- package/read/index.js +40 -0
- package/read/numbers.cjs +181 -0
- package/read/numbers.d.ts +27 -0
- package/read/numbers.js +181 -0
- package/read/strings.cjs +67 -0
- package/read/strings.d.ts +9 -0
- package/read/strings.js +67 -0
- package/reader-with-final.cjs +69 -0
- package/reader-with-final.d.ts +13 -0
- package/reader-with-final.js +69 -0
- package/streams.cjs +15 -0
- package/streams.d.ts +1 -0
- package/streams.js +15 -0
- package/types.d.ts +66 -0
- package/write/adapters.cjs +38 -0
- package/write/adapters.d.ts +4 -0
- package/write/adapters.js +38 -0
- package/write/index.cjs +37 -0
- package/write/index.d.ts +3 -0
- package/write/index.js +37 -0
- package/write/numbers.cjs +311 -0
- package/write/numbers.d.ts +27 -0
- package/write/numbers.js +311 -0
- package/write/pipe.cjs +11 -0
- package/write/pipe.d.ts +2 -0
- package/write/pipe.js +11 -0
- package/write/strings.cjs +38 -0
- package/write/strings.d.ts +6 -0
- package/write/strings.js +38 -0
package/write/numbers.js
ADDED
|
@@ -0,0 +1,311 @@
|
|
|
1
|
+
import { getDv } from "../_utils.js";
|
|
2
|
+
function _maybeWrite(writable, size) {
|
|
3
|
+
if (ArrayBuffer.isView(writable)) {
|
|
4
|
+
return writable.subarray(0, size);
|
|
5
|
+
} else {
|
|
6
|
+
return writable.writeSync(size);
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
function _checkInt(value, min, max) {
|
|
10
|
+
if (value < min || value > max) {
|
|
11
|
+
throw new RangeError(`value out of bounds: ${value} (${min} ≤ value ≤ ${max})`);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
function uint8(writable, value, noAssert = false) {
|
|
15
|
+
if (!noAssert) _checkInt(value, 0, 255);
|
|
16
|
+
const buf = _maybeWrite(writable, 1);
|
|
17
|
+
if (value < 0) value = 256 + value;
|
|
18
|
+
buf[0] = value & 255;
|
|
19
|
+
}
|
|
20
|
+
function int8(writable, value, noAssert = false) {
|
|
21
|
+
if (!noAssert) _checkInt(value, -128, 127);
|
|
22
|
+
const buf = _maybeWrite(writable, 1);
|
|
23
|
+
if (value < 0) value = 255 + value + 1;
|
|
24
|
+
buf[0] = value & 255;
|
|
25
|
+
}
|
|
26
|
+
function uint16le(writable, value, noAssert = false) {
|
|
27
|
+
if (!noAssert) _checkInt(value, 0, 65535);
|
|
28
|
+
const buf = _maybeWrite(writable, 2);
|
|
29
|
+
buf[0] = value & 255;
|
|
30
|
+
buf[1] = value >>> 8;
|
|
31
|
+
}
|
|
32
|
+
function uint16be(writable, value, noAssert = false) {
|
|
33
|
+
if (!noAssert) _checkInt(value, 0, 65535);
|
|
34
|
+
const buf = _maybeWrite(writable, 2);
|
|
35
|
+
buf[0] = value >>> 8;
|
|
36
|
+
buf[1] = value & 255;
|
|
37
|
+
}
|
|
38
|
+
function int16le(writable, value, noAssert = false) {
|
|
39
|
+
const buf = _maybeWrite(writable, 2);
|
|
40
|
+
if (!noAssert) _checkInt(value, -32768, 32767);
|
|
41
|
+
buf[0] = value & 255;
|
|
42
|
+
buf[1] = value >>> 8;
|
|
43
|
+
}
|
|
44
|
+
function int16be(writable, value, noAssert = false) {
|
|
45
|
+
const buf = _maybeWrite(writable, 2);
|
|
46
|
+
if (!noAssert) _checkInt(value, -32768, 32767);
|
|
47
|
+
buf[0] = value >>> 8;
|
|
48
|
+
buf[1] = value & 255;
|
|
49
|
+
}
|
|
50
|
+
function uint24le(writable, value, noAssert = false) {
|
|
51
|
+
if (!noAssert) _checkInt(value, 0, 16777215);
|
|
52
|
+
const buf = _maybeWrite(writable, 3);
|
|
53
|
+
buf[0] = value;
|
|
54
|
+
value = value >>> 8;
|
|
55
|
+
buf[1] = value;
|
|
56
|
+
value = value >>> 8;
|
|
57
|
+
buf[2] = value;
|
|
58
|
+
}
|
|
59
|
+
function uint24be(writable, value, noAssert = false) {
|
|
60
|
+
if (!noAssert) _checkInt(value, 0, 16777215);
|
|
61
|
+
const buf = _maybeWrite(writable, 3);
|
|
62
|
+
buf[2] = value;
|
|
63
|
+
value = value >>> 8;
|
|
64
|
+
buf[1] = value;
|
|
65
|
+
value = value >>> 8;
|
|
66
|
+
buf[0] = value;
|
|
67
|
+
}
|
|
68
|
+
function int24le(writable, value, noAssert = false) {
|
|
69
|
+
if (!noAssert) _checkInt(value, -8388608, 8388607);
|
|
70
|
+
const buf = _maybeWrite(writable, 3);
|
|
71
|
+
buf[0] = value;
|
|
72
|
+
value = value >>> 8;
|
|
73
|
+
buf[1] = value;
|
|
74
|
+
value = value >>> 8;
|
|
75
|
+
buf[2] = value;
|
|
76
|
+
}
|
|
77
|
+
function int24be(writable, value, noAssert = false) {
|
|
78
|
+
if (!noAssert) _checkInt(value, -8388608, 8388607);
|
|
79
|
+
const buf = _maybeWrite(writable, 3);
|
|
80
|
+
buf[2] = value;
|
|
81
|
+
value = value >>> 8;
|
|
82
|
+
buf[1] = value;
|
|
83
|
+
value = value >>> 8;
|
|
84
|
+
buf[0] = value;
|
|
85
|
+
}
|
|
86
|
+
function uint32le(writable, value, noAssert = false) {
|
|
87
|
+
const buf = _maybeWrite(writable, 4);
|
|
88
|
+
if (!noAssert) _checkInt(value, 0, 4294967295);
|
|
89
|
+
buf[0] = value;
|
|
90
|
+
value = value >>> 8;
|
|
91
|
+
buf[1] = value;
|
|
92
|
+
value = value >>> 8;
|
|
93
|
+
buf[2] = value;
|
|
94
|
+
value = value >>> 8;
|
|
95
|
+
buf[3] = value;
|
|
96
|
+
}
|
|
97
|
+
function uint32be(writable, value, noAssert = false) {
|
|
98
|
+
const buf = _maybeWrite(writable, 4);
|
|
99
|
+
if (!noAssert) _checkInt(value, 0, 4294967295);
|
|
100
|
+
buf[3] = value;
|
|
101
|
+
value = value >>> 8;
|
|
102
|
+
buf[2] = value;
|
|
103
|
+
value = value >>> 8;
|
|
104
|
+
buf[1] = value;
|
|
105
|
+
value = value >>> 8;
|
|
106
|
+
buf[0] = value;
|
|
107
|
+
}
|
|
108
|
+
function int32le(writable, value, noAssert = false) {
|
|
109
|
+
const buf = _maybeWrite(writable, 4);
|
|
110
|
+
if (!noAssert) _checkInt(value, -2147483648, 2147483647);
|
|
111
|
+
buf[0] = value;
|
|
112
|
+
value = value >>> 8;
|
|
113
|
+
buf[1] = value;
|
|
114
|
+
value = value >>> 8;
|
|
115
|
+
buf[2] = value;
|
|
116
|
+
value = value >>> 8;
|
|
117
|
+
buf[3] = value;
|
|
118
|
+
}
|
|
119
|
+
function int32be(writable, value, noAssert = false) {
|
|
120
|
+
const buf = _maybeWrite(writable, 4);
|
|
121
|
+
if (!noAssert) _checkInt(value, -2147483648, 2147483647);
|
|
122
|
+
buf[3] = value;
|
|
123
|
+
value = value >>> 8;
|
|
124
|
+
buf[2] = value;
|
|
125
|
+
value = value >>> 8;
|
|
126
|
+
buf[1] = value;
|
|
127
|
+
value = value >>> 8;
|
|
128
|
+
buf[0] = value;
|
|
129
|
+
}
|
|
130
|
+
function uint64le(writable, value, noAssert = false) {
|
|
131
|
+
const buf = _maybeWrite(writable, 8);
|
|
132
|
+
if (!noAssert) _checkInt(value, 0n, 0xFFFFFFFFFFFFFFFFn);
|
|
133
|
+
let lo = Number(value & 0xFFFFFFFFn);
|
|
134
|
+
buf[0] = lo;
|
|
135
|
+
lo = lo >> 8;
|
|
136
|
+
buf[1] = lo;
|
|
137
|
+
lo = lo >> 8;
|
|
138
|
+
buf[2] = lo;
|
|
139
|
+
lo = lo >> 8;
|
|
140
|
+
buf[3] = lo;
|
|
141
|
+
let hi = Number(value >> 32n & 0xFFFFFFFFn);
|
|
142
|
+
buf[4] = hi;
|
|
143
|
+
hi = hi >> 8;
|
|
144
|
+
buf[5] = hi;
|
|
145
|
+
hi = hi >> 8;
|
|
146
|
+
buf[6] = hi;
|
|
147
|
+
hi = hi >> 8;
|
|
148
|
+
buf[7] = hi;
|
|
149
|
+
}
|
|
150
|
+
function uint64be(writable, value, noAssert = false) {
|
|
151
|
+
const buf = _maybeWrite(writable, 8);
|
|
152
|
+
if (!noAssert) _checkInt(value, 0n, 0xFFFFFFFFFFFFFFFFn);
|
|
153
|
+
let lo = Number(value & 0xFFFFFFFFn);
|
|
154
|
+
buf[7] = lo;
|
|
155
|
+
lo = lo >> 8;
|
|
156
|
+
buf[6] = lo;
|
|
157
|
+
lo = lo >> 8;
|
|
158
|
+
buf[5] = lo;
|
|
159
|
+
lo = lo >> 8;
|
|
160
|
+
buf[4] = lo;
|
|
161
|
+
let hi = Number(value >> 32n & 0xFFFFFFFFn);
|
|
162
|
+
buf[3] = hi;
|
|
163
|
+
hi = hi >> 8;
|
|
164
|
+
buf[2] = hi;
|
|
165
|
+
hi = hi >> 8;
|
|
166
|
+
buf[1] = hi;
|
|
167
|
+
hi = hi >> 8;
|
|
168
|
+
buf[0] = hi;
|
|
169
|
+
}
|
|
170
|
+
function int64le(writable, value, noAssert = false) {
|
|
171
|
+
const buf = _maybeWrite(writable, 8);
|
|
172
|
+
if (!noAssert) _checkInt(value, -0x8000000000000000n, 0x7FFFFFFFFFFFFFFFn);
|
|
173
|
+
let lo = Number(value & 0xFFFFFFFFn);
|
|
174
|
+
buf[0] = lo;
|
|
175
|
+
lo = lo >> 8;
|
|
176
|
+
buf[1] = lo;
|
|
177
|
+
lo = lo >> 8;
|
|
178
|
+
buf[2] = lo;
|
|
179
|
+
lo = lo >> 8;
|
|
180
|
+
buf[3] = lo;
|
|
181
|
+
let hi = Number(value >> 32n & 0xFFFFFFFFn);
|
|
182
|
+
buf[4] = hi;
|
|
183
|
+
hi = hi >> 8;
|
|
184
|
+
buf[5] = hi;
|
|
185
|
+
hi = hi >> 8;
|
|
186
|
+
buf[6] = hi;
|
|
187
|
+
hi = hi >> 8;
|
|
188
|
+
buf[7] = hi;
|
|
189
|
+
}
|
|
190
|
+
function int64be(writable, value, noAssert = false) {
|
|
191
|
+
const buf = _maybeWrite(writable, 8);
|
|
192
|
+
if (!noAssert) _checkInt(value, -0x8000000000000000n, 0x7FFFFFFFFFFFFFFFn);
|
|
193
|
+
let lo = Number(value & 0xFFFFFFFFn);
|
|
194
|
+
buf[7] = lo;
|
|
195
|
+
lo = lo >> 8;
|
|
196
|
+
buf[6] = lo;
|
|
197
|
+
lo = lo >> 8;
|
|
198
|
+
buf[5] = lo;
|
|
199
|
+
lo = lo >> 8;
|
|
200
|
+
buf[4] = lo;
|
|
201
|
+
let hi = Number(value >> 32n & 0xFFFFFFFFn);
|
|
202
|
+
buf[3] = hi;
|
|
203
|
+
hi = hi >> 8;
|
|
204
|
+
buf[2] = hi;
|
|
205
|
+
hi = hi >> 8;
|
|
206
|
+
buf[1] = hi;
|
|
207
|
+
hi = hi >> 8;
|
|
208
|
+
buf[0] = hi;
|
|
209
|
+
}
|
|
210
|
+
function uintle(writable, size, value, noAssert = false) {
|
|
211
|
+
if (!noAssert) {
|
|
212
|
+
_checkInt(value, 0n, 2n ** BigInt(8 * size) - 1n);
|
|
213
|
+
}
|
|
214
|
+
const buf = _maybeWrite(writable, size);
|
|
215
|
+
let mul = 1n;
|
|
216
|
+
let i = 0;
|
|
217
|
+
buf[0] = Number(value & 0xFFn);
|
|
218
|
+
while (++i < size && (mul *= 0x100n)) {
|
|
219
|
+
buf[i] = Number(value / mul & 0xFFn);
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
function uintbe(writable, size, value, noAssert = false) {
|
|
223
|
+
if (!noAssert) {
|
|
224
|
+
_checkInt(value, 0n, 2n ** BigInt(8 * size) - 1n);
|
|
225
|
+
}
|
|
226
|
+
const buf = _maybeWrite(writable, size);
|
|
227
|
+
let i = size - 1;
|
|
228
|
+
let mul = 1n;
|
|
229
|
+
buf[i] = Number(value & 0xFFn);
|
|
230
|
+
while (--i >= 0 && (mul *= 0x100n)) {
|
|
231
|
+
buf[i] = Number(value / mul & 0xFFn);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
function intle(writable, size, value, noAssert = false) {
|
|
235
|
+
if (!noAssert) {
|
|
236
|
+
const limit = 2n ** BigInt(8 * size - 1);
|
|
237
|
+
_checkInt(value, -limit, limit - 1n);
|
|
238
|
+
}
|
|
239
|
+
const buf = _maybeWrite(writable, size);
|
|
240
|
+
let i = 0;
|
|
241
|
+
let mul = 1n;
|
|
242
|
+
let sub = 0n;
|
|
243
|
+
buf[0] = Number(value & 0xFFn);
|
|
244
|
+
while (++i < size && (mul *= 0x100n)) {
|
|
245
|
+
if (value < 0 && sub === 0n && buf[i - 1] !== 0) {
|
|
246
|
+
sub = 1n;
|
|
247
|
+
}
|
|
248
|
+
buf[i] = Number(value / mul - sub & 0xFFn);
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
function intbe(writable, size, value, noAssert = false) {
|
|
252
|
+
if (!noAssert) {
|
|
253
|
+
const limit = 2n ** BigInt(8 * size - 1);
|
|
254
|
+
_checkInt(value, -limit, limit - 1n);
|
|
255
|
+
}
|
|
256
|
+
const buf = _maybeWrite(writable, size);
|
|
257
|
+
let i = size - 1;
|
|
258
|
+
let mul = 1n;
|
|
259
|
+
let sub = 0n;
|
|
260
|
+
buf[i] = Number(value & 0xFFn);
|
|
261
|
+
while (--i >= 0 && (mul *= 0x100n)) {
|
|
262
|
+
if (value < 0 && sub === 0n && buf[i + 1] !== 0) {
|
|
263
|
+
sub = 1n;
|
|
264
|
+
}
|
|
265
|
+
buf[i] = Number(value / mul - sub & 0xFFn);
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
function float32le(writable, value) {
|
|
269
|
+
const buf = _maybeWrite(writable, 4);
|
|
270
|
+
getDv(buf).setFloat32(buf.byteOffset, value, true);
|
|
271
|
+
}
|
|
272
|
+
function float32be(writable, value) {
|
|
273
|
+
const buf = _maybeWrite(writable, 4);
|
|
274
|
+
getDv(buf).setFloat32(buf.byteOffset, value, false);
|
|
275
|
+
}
|
|
276
|
+
function float64le(writable, value) {
|
|
277
|
+
const buf = _maybeWrite(writable, 8);
|
|
278
|
+
getDv(buf).setFloat64(buf.byteOffset, value, true);
|
|
279
|
+
}
|
|
280
|
+
function float64be(writable, value) {
|
|
281
|
+
const buf = _maybeWrite(writable, 8);
|
|
282
|
+
getDv(buf).setFloat64(buf.byteOffset, value, false);
|
|
283
|
+
}
|
|
284
|
+
export {
|
|
285
|
+
float32be,
|
|
286
|
+
float32le,
|
|
287
|
+
float64be,
|
|
288
|
+
float64le,
|
|
289
|
+
int16be,
|
|
290
|
+
int16le,
|
|
291
|
+
int24be,
|
|
292
|
+
int24le,
|
|
293
|
+
int32be,
|
|
294
|
+
int32le,
|
|
295
|
+
int64be,
|
|
296
|
+
int64le,
|
|
297
|
+
int8,
|
|
298
|
+
intbe,
|
|
299
|
+
intle,
|
|
300
|
+
uint16be,
|
|
301
|
+
uint16le,
|
|
302
|
+
uint24be,
|
|
303
|
+
uint24le,
|
|
304
|
+
uint32be,
|
|
305
|
+
uint32le,
|
|
306
|
+
uint64be,
|
|
307
|
+
uint64le,
|
|
308
|
+
uint8,
|
|
309
|
+
uintbe,
|
|
310
|
+
uintle
|
|
311
|
+
};
|
package/write/pipe.cjs
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
async function pipe(into, readable) {
|
|
4
|
+
const chunk = new Uint8Array(1024 * 32);
|
|
5
|
+
while (true) {
|
|
6
|
+
const nread = await readable.read(chunk);
|
|
7
|
+
if (nread === 0) break;
|
|
8
|
+
await into.write(chunk.subarray(0, nread));
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.pipe = pipe;
|
package/write/pipe.d.ts
ADDED
package/write/pipe.js
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const utils = require("@fuman/utils");
|
|
4
|
+
function bytes(writable, bytes2) {
|
|
5
|
+
writable.writeSync(bytes2.length).set(bytes2);
|
|
6
|
+
writable.disposeWriteSync();
|
|
7
|
+
}
|
|
8
|
+
function bytesReversed(writable, bytes2) {
|
|
9
|
+
const buf = writable.writeSync(bytes2.length);
|
|
10
|
+
buf.set(bytes2);
|
|
11
|
+
buf.reverse();
|
|
12
|
+
writable.disposeWriteSync();
|
|
13
|
+
}
|
|
14
|
+
function rawString(writable, str) {
|
|
15
|
+
const buf = writable.writeSync(str.length);
|
|
16
|
+
for (let i = 0; i < str.length; i++) {
|
|
17
|
+
buf[i] = str.charCodeAt(i);
|
|
18
|
+
}
|
|
19
|
+
writable.disposeWriteSync();
|
|
20
|
+
}
|
|
21
|
+
function utf8String(writable, str) {
|
|
22
|
+
const len = utils.utf8.encodedLength(str);
|
|
23
|
+
const buf = writable.writeSync(len);
|
|
24
|
+
utils.utf8.encoder.encodeInto(str, buf);
|
|
25
|
+
writable.disposeWriteSync();
|
|
26
|
+
}
|
|
27
|
+
function cUtf8String(writable, str) {
|
|
28
|
+
const len = utils.utf8.encodedLength(str);
|
|
29
|
+
const buf = writable.writeSync(len + 1);
|
|
30
|
+
utils.utf8.encoder.encodeInto(str, buf);
|
|
31
|
+
buf[len] = 0;
|
|
32
|
+
writable.disposeWriteSync();
|
|
33
|
+
}
|
|
34
|
+
exports.bytes = bytes;
|
|
35
|
+
exports.bytesReversed = bytesReversed;
|
|
36
|
+
exports.cUtf8String = cUtf8String;
|
|
37
|
+
exports.rawString = rawString;
|
|
38
|
+
exports.utf8String = utf8String;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ISyncWritable } from '../types.js';
|
|
2
|
+
export declare function bytes(writable: ISyncWritable, bytes: Uint8Array): void;
|
|
3
|
+
export declare function bytesReversed(writable: ISyncWritable, bytes: Uint8Array): void;
|
|
4
|
+
export declare function rawString(writable: ISyncWritable, str: string): void;
|
|
5
|
+
export declare function utf8String(writable: ISyncWritable, str: string): void;
|
|
6
|
+
export declare function cUtf8String(writable: ISyncWritable, str: string): void;
|
package/write/strings.js
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { utf8 } from "@fuman/utils";
|
|
2
|
+
function bytes(writable, bytes2) {
|
|
3
|
+
writable.writeSync(bytes2.length).set(bytes2);
|
|
4
|
+
writable.disposeWriteSync();
|
|
5
|
+
}
|
|
6
|
+
function bytesReversed(writable, bytes2) {
|
|
7
|
+
const buf = writable.writeSync(bytes2.length);
|
|
8
|
+
buf.set(bytes2);
|
|
9
|
+
buf.reverse();
|
|
10
|
+
writable.disposeWriteSync();
|
|
11
|
+
}
|
|
12
|
+
function rawString(writable, str) {
|
|
13
|
+
const buf = writable.writeSync(str.length);
|
|
14
|
+
for (let i = 0; i < str.length; i++) {
|
|
15
|
+
buf[i] = str.charCodeAt(i);
|
|
16
|
+
}
|
|
17
|
+
writable.disposeWriteSync();
|
|
18
|
+
}
|
|
19
|
+
function utf8String(writable, str) {
|
|
20
|
+
const len = utf8.encodedLength(str);
|
|
21
|
+
const buf = writable.writeSync(len);
|
|
22
|
+
utf8.encoder.encodeInto(str, buf);
|
|
23
|
+
writable.disposeWriteSync();
|
|
24
|
+
}
|
|
25
|
+
function cUtf8String(writable, str) {
|
|
26
|
+
const len = utf8.encodedLength(str);
|
|
27
|
+
const buf = writable.writeSync(len + 1);
|
|
28
|
+
utf8.encoder.encodeInto(str, buf);
|
|
29
|
+
buf[len] = 0;
|
|
30
|
+
writable.disposeWriteSync();
|
|
31
|
+
}
|
|
32
|
+
export {
|
|
33
|
+
bytes,
|
|
34
|
+
bytesReversed,
|
|
35
|
+
cUtf8String,
|
|
36
|
+
rawString,
|
|
37
|
+
utf8String
|
|
38
|
+
};
|