...

Text file src/github.com/google/flatbuffers/ts/flexbuffers/bit-width-util.ts

Documentation: github.com/google/flatbuffers/ts/flexbuffers

     1import { BitWidth } from './bit-width.js'
     2
     3export function toByteWidth(bitWidth: BitWidth): number {
     4  return 1 << bitWidth;
     5}
     6
     7export function iwidth(value: number | bigint): BitWidth {
     8  if (value >= -128 && value <= 127) return BitWidth.WIDTH8;
     9  if (value >= -32768 && value <= 32767) return BitWidth.WIDTH16;
    10  if (value >= -2147483648 && value <= 2147483647) return BitWidth.WIDTH32;
    11  return BitWidth.WIDTH64;
    12}
    13
    14export function fwidth(value: number): BitWidth {
    15  return value === Math.fround(value) ? BitWidth.WIDTH32 : BitWidth.WIDTH64;
    16}
    17
    18export function uwidth(value: number): BitWidth {
    19  if (value <= 255) return BitWidth.WIDTH8;
    20  if (value <= 65535) return BitWidth.WIDTH16;
    21  if (value <= 4294967295) return BitWidth.WIDTH32;
    22  return BitWidth.WIDTH64;
    23}
    24
    25export function fromByteWidth(value: number): BitWidth {
    26  if (value === 1) return BitWidth.WIDTH8;
    27  if (value === 2) return BitWidth.WIDTH16;
    28  if (value === 4) return BitWidth.WIDTH32;
    29  return BitWidth.WIDTH64;
    30}
    31
    32export function paddingSize(bufSize: number, scalarSize: number): number {
    33  return (~bufSize + 1) & (scalarSize - 1);
    34}

View as plain text