Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Explore using ST for effects (issue #24) #33

Merged
merged 11 commits into from
Mar 10, 2019
Merged
7 changes: 5 additions & 2 deletions bower.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,14 @@
"dependencies": {
"purescript-effect": "^2.0.0",
"purescript-maybe": "^4.0.0",
"purescript-arraybuffer-types": "^2.0.0"
"purescript-arraybuffer-types": "^2.0.0",
"purescript-st": "^4.0.0",
"purescript-unsafe-coerce": "^4.0.0"
},
"devDependencies": {
"purescript-assert": "^4.0.0",
"purescript-console": "^4.1.0",
"purescript-foldable-traversable": "^4.0.0"
"purescript-foldable-traversable": "^4.0.0",
"purescript-proxy": "^3.0.0"
}
}
161 changes: 44 additions & 117 deletions src/Node/Buffer.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,44 +5,53 @@

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

exports.create = function (size) {
return function() {
return Buffer.alloc(size);
exports.eqImpl = function(a) {
return function(b) {
return a.equals(b);
}
};

exports.compareImpl = function(a) {
return function (b) {
return a.compare(b);
};
}

exports.create = function (size) {
return Buffer.alloc(size);
};

exports.fromArray = function (octets) {
return function() {
return Buffer.from(octets);
};
return Buffer.from(octets);
};

exports.fromStringImpl = function (str) {
return function (encoding) {
return function() {
return Buffer.from(str, encoding);
};
};
exports.size = function (buff) {
return buff.length;
};

exports.fromArrayBuffer = function(ab) {
return function() {
return Buffer.from(ab);
};
exports.toArray = function (buff) {
var json = buff.toJSON()
return json.data || json;
};

exports.toArrayBuffer = function(buff) {
return function() {
return buff.buffer.slice(buff.byteOffset, buff.byteOffset + buff.byteLength);
return buff.buffer.slice(buff.byteOffset, buff.byteOffset + buff.byteLength);
};

exports.fromArrayBuffer = function(ab) {
return Buffer.from(ab);
};

exports.fromStringImpl = function (str) {
return function (encoding) {
return Buffer.from(str, encoding);
};
};

exports.readImpl = function (ty) {
return function (offset) {
return function (buf) {
return function() {
return buf['read' + ty](offset);
};
return buf['read' + ty](offset);
};
};
};
Expand All @@ -51,126 +60,44 @@ exports.readStringImpl = function (enc) {
return function (start) {
return function (end) {
return function (buff) {
return function() {
return buff.toString(enc, start, end);
};
return buff.toString(enc, start, end);
};
};
};
};

exports.toStringImpl = function (enc) {
return function (buff) {
return function() {
return buff.toString(enc);
};
};
};

exports.writeImpl = function (ty) {
return function (value) {
return function (offset) {
return function (buf) {
return function() {
buf['write' + ty](value, offset);
return {};
}
};
};
};
};

exports.writeStringImpl = function (encoding) {
return function (offset) {
return function (length) {
return function (value) {
return function (buff) {
return function() {
return buff.write(value, offset, length, encoding);
}
};
};
};
};
};

exports.toArray = function (buff) {
return function() {
var json = buff.toJSON()
return json.data || json;
};
};

exports.getAtOffsetImpl = function (just) {
return function (nothing) {
return function (offset) {
return function (buff) {
return function() {
var octet = buff[offset];
return octet == null ? nothing
: just(octet);
};
var octet = buff[offset];
return octet == null ? nothing
: just(octet);
};
};
};
};

exports.setAtOffset = function (value) {
return function (offset) {
return function (buff) {
return function() {
buff[offset] = value;
return {};
};
};
exports.toStringImpl = function (enc) {
return function (buff) {
return buff.toString(enc);
};
};

exports.size = function (buff) {
return function() {
return buff.length;
exports.slice = function (start) {
return function (end) {
return function (buff) {
return buff.slice(start, end);
};
};
};



exports.concat = function (buffs) {
return function() {
return Buffer.concat(buffs);
};
return Buffer.concat(buffs);
};

exports["concat'"] = function (buffs) {
return function (totalLength) {
return function() {
return Buffer.concat(buffs, totalLength);
};
};
};

exports.copy = function (srcStart) {
return function (srcEnd) {
return function (src) {
return function (targStart) {
return function (targ) {
return function() {
return src.copy(targ, targStart, srcStart, srcEnd);
};
};
};
};
};
};

exports.fill = function (octet) {
return function (start) {
return function (end) {
return function (buf) {
return function() {
buf.fill(octet, start, end);
return {};
};
};
};
return Buffer.concat(buffs, totalLength);
};
};
Loading