7#include "exception.hpp"
12namespace hi::inline v1 {
20[[nodiscard]]
inline bool get_bit(std::span<std::byte const> buffer,
std::size_t &index)
noexcept
22 hilet byte_index = index >> 3;
23 hilet bit_index = index & 7;
26 hi_axiom(byte_index < buffer.size());
27 return to_bool(std::bit_cast<uint8_t>(buffer[byte_index] >> bit_index) & 1);
57 hilet byte_index = index >> 3;
58 hilet bit_index = index & 7;
59 hi_axiom(byte_index < buffer.size());
61 hilet available_bits = 8 - bit_index;
64 hilet mask = (1 << nr_bits) - 1;
66 hilet tmp =
static_cast<int>(buffer[byte_index] >> bit_index) & mask;
#define hilet
Invariant should be the default for variables.
Definition required.hpp:23