mirror of
https://github.com/discordeno/discordeno.git
synced 2026-06-03 09:20:08 +00:00
50 lines
1.0 KiB
TypeScript
50 lines
1.0 KiB
TypeScript
export class ToggleBitfield {
|
|
bitfield = 0
|
|
|
|
constructor (bitfield?: number) {
|
|
if (bitfield) this.bitfield = bitfield
|
|
}
|
|
|
|
/** Tests whether or not this bitfield has the permission requested. */
|
|
contains (bits: number): boolean {
|
|
return Boolean(this.bitfield & bits)
|
|
}
|
|
|
|
/** Adds some bits to the bitfield. */
|
|
add (bits: number): this {
|
|
this.bitfield |= bits
|
|
return this
|
|
}
|
|
|
|
/** Removes some bits from the bitfield. */
|
|
remove (bits: number): this {
|
|
this.bitfield &= ~bits
|
|
return this
|
|
}
|
|
}
|
|
|
|
export class ToggleBitfieldBigint {
|
|
bitfield = 0n
|
|
|
|
constructor (bitfield?: bigint) {
|
|
if (bitfield) this.bitfield = bitfield
|
|
}
|
|
|
|
/** Tests whether or not this bitfield has the permission requested. */
|
|
contains (bits: bigint): boolean {
|
|
return Boolean(this.bitfield & bits)
|
|
}
|
|
|
|
/** Adds some bits to the bitfield. */
|
|
add (bits: bigint): this {
|
|
this.bitfield |= bits
|
|
return this
|
|
}
|
|
|
|
/** Removes some bits from the bitfield. */
|
|
remove (bits: bigint): this {
|
|
this.bitfield &= ~bits
|
|
return this
|
|
}
|
|
}
|