@toreda/strong-types
Version:
Better TypeScript code in fewer lines.
45 lines (44 loc) • 1.24 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.uIntMake = void 0;
const rules_1 = require("../rules");
const type_1 = require("../create/type");
const value_1 = require("../initial/value");
/**
* Create new strong unsigned integer.
* @param fallback
* @param initial
* @returns
*
* @category Maths
*/
function uIntMake(fallback, value) {
const rules = new rules_1.Rules();
rules.add().must.match.type.int();
rules.add().must.be.greaterThanOrEqual(0);
const strong = (0, type_1.createType)(fallback, (0, value_1.initialValue)(value), rules, 'UInt');
return Object.assign(strong, {
increment: () => {
return strong._data.add(1);
},
decrement: () => {
return strong._data.add(-1);
},
mul: (amt) => {
return strong._data.mul(amt);
},
pow: (exponent) => {
return strong._data.pow(exponent);
},
div: (amt) => {
return strong._data.div(amt);
},
add: (amt) => {
return strong._data.add(amt);
},
sub: (amt) => {
return strong._data.add(amt * -1);
}
});
}
exports.uIntMake = uIntMake;