/*
 * This file defines the quantization-breakpoint-related structs.
 */

#pragma once

#include <cstdint>
#include <vector>
#include <map>

namespace atc {
	
	// Represents a split breakpoint inside a single block.
	struct BlockBreakpoint {
		size_t leading_index = 0; // Index of the first position after the last encoded leading bit.
		size_t trailing_index = 0; // Index of the first position after the last encoded trailing bit.
	};
	
	// Represents a full split breakpoint, combining breakpoints across all blocks.
	struct SplitBreakpoint {
		SplitBreakpoint(size_t blocks_amount) : blocks(blocks_amount) { };
		uint8_t bitplane;
		std::vector<BlockBreakpoint> blocks;
	};
	
}
