41 lines
523 B
JavaScript
41 lines
523 B
JavaScript
export class BitFlags {
|
|
_value
|
|
|
|
get flags() {
|
|
return this._value
|
|
}
|
|
|
|
constructor(value) {
|
|
this._value = value
|
|
}
|
|
/**
|
|
* @param {number} a
|
|
* @param {number} b
|
|
*/
|
|
static has(a, b) {
|
|
return (a & b) === b
|
|
}
|
|
|
|
/**
|
|
* @param {number} a
|
|
* @param {number} b
|
|
*/
|
|
static add(a, b) {
|
|
return a | b
|
|
}
|
|
|
|
/**
|
|
* @param {number} b
|
|
*/
|
|
has(b) {
|
|
return BitFlags.has(this._value, b)
|
|
}
|
|
|
|
/**
|
|
* @param {number} b
|
|
*/
|
|
add(b) {
|
|
return BitFlags.add(this._value, b)
|
|
}
|
|
}
|
|
|