UNPKG

reign

Version:

A persistent, typed-objects implementation.

51 lines (41 loc) 1.31 kB
"use strict"; 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: 'Int16', byteAlignment: 2, byteLength: 2, cast: function cast(input) { return (input & 65535) << 16 >> 16; }, accepts: function accepts(input) { return typeof input === 'number' && !isNaN(input) && input >= -32768 && input <= 32767 && input === Math.floor(input); }, store: function store(backing, address, value) { backing.setInt16(address, value); }, load: function load(backing, address) { return backing.getInt16(address); }, emptyValue: function emptyValue() { return 0; }, randomValue: function randomValue() { return Math.floor(Math.random() * Math.pow(2, 16)) - Math.pow(2, 15); }, hashValue: _integer2.default, flowType: function flowType() { return `int16`; } }); }