All files / src/decoders header.ts

100% Statements 11/11
100% Branches 4/4
100% Functions 2/2
100% Lines 11/11

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32        72x   72x   72x   69x     1x     1x     1x         72x   72x 72x   71x    
import { DecodeContext } from '../decode';
import { FloatQuality } from '../types';
 
function decodeFloatQuality(context: DecodeContext): FloatQuality {
	const { reader } = context;
 
	const quality = reader.readUint8();
 
	switch (quality) {
		case 0:
			return 'double';
 
		case 1:
			return 'single';
 
		case 2:
			return reader.readUintVar();
 
		default:
			throw `Unexpected float quality: ${quality}`;
	}
}
 
export function decodeHeader(context: DecodeContext) {
	const { reader } = context;
 
	const version = reader.readUintVar();
	const floatQuality = decodeFloatQuality(context);
 
	Object.assign(context, { version, floatQuality });
}