Skip to content

Commit a4a7797

Browse files
committed
Split into immutable buffers and Effect/ST buffer types.
1 parent d279daa commit a4a7797

File tree

16 files changed

+1022
-342
lines changed

16 files changed

+1022
-342
lines changed

bower.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@
1515
"dependencies": {
1616
"purescript-effect": "^2.0.0",
1717
"purescript-maybe": "^4.0.0",
18-
"purescript-arraybuffer-types": "^2.0.0"
18+
"purescript-arraybuffer-types": "^2.0.0",
19+
"purescript-st": "^4.0.0",
20+
"purescript-unsafe-coerce": "^4.0.0"
1921
},
2022
"devDependencies": {
2123
"purescript-assert": "^4.0.0",

src/Node/Buffer.js

Lines changed: 44 additions & 117 deletions
Original file line numberDiff line numberDiff line change
@@ -5,44 +5,53 @@
55

66
exports.showImpl = require('util').inspect;
77

8-
exports.create = function (size) {
9-
return function() {
10-
return Buffer.alloc(size);
8+
exports.eqImpl = function(a) {
9+
return function(b) {
10+
return a.equals(b);
11+
}
12+
};
13+
14+
exports.compareImpl = function(a) {
15+
return function (b) {
16+
return a.compare(b);
1117
};
18+
}
19+
20+
exports.create = function (size) {
21+
return Buffer.alloc(size);
1222
};
1323

1424
exports.fromArray = function (octets) {
15-
return function() {
16-
return Buffer.from(octets);
17-
};
25+
return Buffer.from(octets);
1826
};
1927

20-
exports.fromStringImpl = function (str) {
21-
return function (encoding) {
22-
return function() {
23-
return Buffer.from(str, encoding);
24-
};
25-
};
28+
exports.size = function (buff) {
29+
return buff.length;
2630
};
2731

28-
exports.fromArrayBuffer = function(ab) {
29-
return function() {
30-
return Buffer.from(ab);
31-
};
32+
exports.toArray = function (buff) {
33+
var json = buff.toJSON()
34+
return json.data || json;
3235
};
3336

3437
exports.toArrayBuffer = function(buff) {
35-
return function() {
36-
return buff.buffer.slice(buff.byteOffset, buff.byteOffset + buff.byteLength);
38+
return buff.buffer.slice(buff.byteOffset, buff.byteOffset + buff.byteLength);
39+
};
40+
41+
exports.fromArrayBuffer = function(ab) {
42+
return Buffer.from(ab);
43+
};
44+
45+
exports.fromStringImpl = function (str) {
46+
return function (encoding) {
47+
return Buffer.from(str, encoding);
3748
};
3849
};
3950

4051
exports.readImpl = function (ty) {
4152
return function (offset) {
4253
return function (buf) {
43-
return function() {
44-
return buf['read' + ty](offset);
45-
};
54+
return buf['read' + ty](offset);
4655
};
4756
};
4857
};
@@ -51,126 +60,44 @@ exports.readStringImpl = function (enc) {
5160
return function (start) {
5261
return function (end) {
5362
return function (buff) {
54-
return function() {
55-
return buff.toString(enc, start, end);
56-
};
63+
return buff.toString(enc, start, end);
5764
};
5865
};
5966
};
6067
};
6168

62-
exports.toStringImpl = function (enc) {
63-
return function (buff) {
64-
return function() {
65-
return buff.toString(enc);
66-
};
67-
};
68-
};
69-
70-
exports.writeImpl = function (ty) {
71-
return function (value) {
72-
return function (offset) {
73-
return function (buf) {
74-
return function() {
75-
buf['write' + ty](value, offset);
76-
return {};
77-
}
78-
};
79-
};
80-
};
81-
};
82-
83-
exports.writeStringImpl = function (encoding) {
84-
return function (offset) {
85-
return function (length) {
86-
return function (value) {
87-
return function (buff) {
88-
return function() {
89-
return buff.write(value, offset, length, encoding);
90-
}
91-
};
92-
};
93-
};
94-
};
95-
};
96-
97-
exports.toArray = function (buff) {
98-
return function() {
99-
var json = buff.toJSON()
100-
return json.data || json;
101-
};
102-
};
103-
10469
exports.getAtOffsetImpl = function (just) {
10570
return function (nothing) {
10671
return function (offset) {
10772
return function (buff) {
108-
return function() {
109-
var octet = buff[offset];
110-
return octet == null ? nothing
111-
: just(octet);
112-
};
73+
var octet = buff[offset];
74+
return octet == null ? nothing
75+
: just(octet);
11376
};
11477
};
11578
};
11679
};
11780

118-
exports.setAtOffset = function (value) {
119-
return function (offset) {
120-
return function (buff) {
121-
return function() {
122-
buff[offset] = value;
123-
return {};
124-
};
125-
};
81+
exports.toStringImpl = function (enc) {
82+
return function (buff) {
83+
return buff.toString(enc);
12684
};
12785
};
12886

129-
exports.size = function (buff) {
130-
return function() {
131-
return buff.length;
87+
exports.slice = function (start) {
88+
return function (end) {
89+
return function (buff) {
90+
return buff.slice(start, end);
91+
};
13292
};
13393
};
13494

135-
136-
13795
exports.concat = function (buffs) {
138-
return function() {
139-
return Buffer.concat(buffs);
140-
};
96+
return Buffer.concat(buffs);
14197
};
14298

14399
exports["concat'"] = function (buffs) {
144100
return function (totalLength) {
145-
return function() {
146-
return Buffer.concat(buffs, totalLength);
147-
};
148-
};
149-
};
150-
151-
exports.copy = function (srcStart) {
152-
return function (srcEnd) {
153-
return function (src) {
154-
return function (targStart) {
155-
return function (targ) {
156-
return function() {
157-
return src.copy(targ, targStart, srcStart, srcEnd);
158-
};
159-
};
160-
};
161-
};
162-
};
163-
};
164-
165-
exports.fill = function (octet) {
166-
return function (start) {
167-
return function (end) {
168-
return function (buf) {
169-
return function() {
170-
buf.fill(octet, start, end);
171-
return {};
172-
};
173-
};
174-
};
101+
return Buffer.concat(buffs, totalLength);
175102
};
176103
};

0 commit comments

Comments
 (0)