reign
Version:
A persistent, typed-objects implementation.
52 lines (43 loc) • 1.29 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: 'Boolean',
byteAlignment: 1,
byteLength: 1,
cast: function cast(input) {
return input ? true : false;
},
accepts: function accepts(input) {
return typeof input === 'boolean';
},
store: function store(backing, address, value) {
backing.setUint8(address, value ? 1 : 0);
},
load: function load(backing, address) {
return backing.getUint8(address) ? true : false;
},
emptyValue: function emptyValue() {
return false;
},
randomValue: function randomValue() {
return Math.random() >= 0.5 ? true : false;
},
hashValue: function hashValue(input) {
return (0, _integer2.default)(input ? 1 : 0);
},
flowType: function flowType() {
return `boolean`;
}
});
}