capnp-js
Version:
Capnproto run-time decoding and encoding for Node
44 lines (43 loc) • 1.37 kB
JavaScript
var type = require('../type');
var statics = require('./list/statics');
var methods = require('./list/methods');
var t = new type.Terminal();
var ct = {
meta: 1,
layout: 2,
dataBytes: 1,
pointersBytes: 0
};
var Text = function(arena, depth, isOrphan, layout) {
this._arena = arena;
this._depth = depth;
this._isOrphan = isOrphan;
this._segment = layout.segment;
this._begin = layout.begin;
this._length = layout.length;
this._dataBytes = 1;
this._pointersBytes = 0;
this._arena.limiter.read(layout.segment, layout.begin, layout.length);
};
Text._TYPE = t;
Text._CT = ct;
Text._FIELD = {};
Text._HASH = "T";
Text._B64_NULL = "AQAAAAoAAAAAAAAAAAAAAA==";
statics.install(Text);
Text.prototype = {
_TYPE: t,
_CT: ct,
_rt: methods.rt,
_layout: methods.layout
};
Text.prototype.asBytesNull = function() {
return this._segment.slice(this._begin, this._begin + this._length);
};
Text.prototype.asBytes = function() {
return this._segment.slice(this._begin, this._begin + this._length - 1);
};
Text.prototype.toString = function() {
return this._segment.toString("utf8", this._begin, this._begin + this._length - 1);
};
module.exports = Text;