reign
Version:
A persistent, typed-objects implementation.
51 lines (41 loc) • 1.28 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.make = make;
var _integer = require("../../hash-functions/integer");
var _integer2 = _interopRequireDefault(_integer);
var _backing = require("backing");
var _backing2 = _interopRequireDefault(_backing);
var _ = require("../..");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function make(_ref) {
let PrimitiveType = _ref.PrimitiveType;
return new PrimitiveType({
name: 'Uint16',
byteAlignment: 2,
byteLength: 2,
cast: function cast(input) {
return input & 65535;
},
accepts: function accepts(input) {
return typeof input === 'number' && !isNaN(input) && input >= 0 && input <= 65535 && input === Math.floor(input);
},
store: function store(backing, address, value) {
backing.setUint16(address, value);
},
load: function load(backing, address) {
return backing.getUint16(address);
},
emptyValue: function emptyValue() {
return 0;
},
randomValue: function randomValue() {
return Math.floor(Math.random() * Math.pow(2, 16));
},
hashValue: _integer2.default,
flowType: function flowType() {
return `uint16`;
}
});
}