in source/huffman.c [107:129]
size_t aws_huffman_get_encoded_length(struct aws_huffman_encoder *encoder, struct aws_byte_cursor to_encode) {
AWS_PRECONDITION(encoder);
AWS_PRECONDITION(aws_byte_cursor_is_valid(&to_encode));
size_t num_bits = 0;
while (to_encode.len) {
uint8_t new_byte = 0;
aws_byte_cursor_read_u8(&to_encode, &new_byte);
struct aws_huffman_code code_point = encoder->coder->encode(new_byte, encoder->coder->userdata);
num_bits += code_point.num_bits;
}
size_t length = num_bits / 8;
/* Round up */
if (num_bits % 8) {
++length;
}
return length;
}