@gmod/cram
Version:
read CRAM files with pure Javascript
21 lines (20 loc) • 923 B
TypeScript
import CramCodec from './_base.ts';
import type { Cursor, Cursors } from './_base.ts';
import type { HuffmanEncoding } from '../encoding.ts';
import type { CramFileBlock } from '../file.ts';
import type CramSlice from '../slice/index.ts';
export default class HuffmanIntCodec extends CramCodec<'byte' | 'int', HuffmanEncoding['parameters']> {
private codes;
private codeBook;
private sortedCodes;
private valuesByIndex;
private bitLengthsByIndex;
private bitCodeToIndex;
constructor(parameters: HuffmanEncoding['parameters'], dataType: 'byte' | 'int');
buildCodeBook(): void;
buildCodes(): void;
buildCaches(): void;
decode(slice: CramSlice, coreDataBlock: CramFileBlock, _blocksByContentId: Record<number, CramFileBlock>, cursors: Cursors): number;
_decodeZeroLengthCode(): number;
_decode(_slice: CramSlice, coreDataBlock: CramFileBlock, coreCursor: Cursor): number;
}