UNPKG

diffusion

Version:

Diffusion JavaScript client

52 lines (39 loc) 1.32 kB
var _implements = require('util/interface')._implements; var Bytes = require('../../data/bytes'); var util = require('data/util'); module.exports = _implements(Bytes, function BytesImpl(buffer, offset, length) { util.assignInternals(this, buffer, offset, length); var self = this; this.length = function() { return self.$length; }; this.asBuffer = function() { return buffer.slice(self.$offset, self.$offset + self.$length); }; this.copyTo = function(target, tOffset) { tOffset = tOffset || 0; buffer.copy(target, tOffset, self.$offset, self.$offset + self.$length); }; this.equals = function(bytes) { return this.equalBytes(bytes.$buffer, bytes.$offset, bytes.$length); }; this.equalBytes = function(buffer, offset, length) { if (this.$length !== length) { return false; } var $buffer = this.$buffer; var $offset = this.$offset; if ($buffer === buffer && $offset === offset) { return true; } for (var i = 0; i < length; ++i) { if ($buffer[$offset + i] !== buffer[offset + i]) { return false; } } return true; }; }); module.exports.toString = function() { return "BytesImpl"; };