@@ -247,6 +247,113 @@ NALCHI_FLAT_API bool nalchi_bit_stream_writer_write_utf16_string(nalchi::bit_str
247247// / @return `true` if writing has been successful, otherwise `false`.
248248NALCHI_FLAT_API bool nalchi_bit_stream_writer_write_utf32_string (nalchi::bit_stream_writer* self, const char32_t * str);
249249
250+ // / @brief Constructs a `bit_stream_measurer` instance.
251+ NALCHI_FLAT_API nalchi::bit_stream_measurer* nalchi_bit_stream_measurer_construct ();
252+
253+ // / @brief Destroys a `bit_stream_measurer` instance.
254+ NALCHI_FLAT_API void nalchi_bit_stream_measurer_destroy (nalchi::bit_stream_measurer* self);
255+
256+ // / @brief Gets the number of used (measured) bytes.
257+ // / @return Number of used (measured) bytes.
258+ NALCHI_FLAT_API auto nalchi_bit_stream_measurer_used_bytes (const nalchi::bit_stream_measurer* self)
259+ -> nalchi::bit_stream_measurer::size_type;
260+
261+ // / @brief Gets the number of used (measured) bits.
262+ // / @return Number of used (measured) bits.
263+ NALCHI_FLAT_API auto nalchi_bit_stream_measurer_used_bits (const nalchi::bit_stream_measurer* self)
264+ -> nalchi::bit_stream_measurer::size_type;
265+
266+ // / @brief Restarts the measure from zero.
267+ NALCHI_FLAT_API void nalchi_bit_stream_measurer_restart (nalchi::bit_stream_measurer* self);
268+
269+ // / @brief Fake-writes some arbitrary data to the bit stream.
270+ // / @param data Pointer to the arbitrary data.
271+ // / @param size Size in bytes of the data.
272+ NALCHI_FLAT_API void nalchi_bit_stream_measurer_write_bytes (nalchi::bit_stream_measurer* self, const void * data,
273+ nalchi::bit_stream_measurer::size_type size);
274+
275+ // / @brief Fake-writes an bool value to the bit stream.
276+ // / @param data Data to fake-write.
277+ // / @param min Minimum value allowed for @p data.
278+ // / @param max Maximum value allowed for @p data.
279+ NALCHI_FLAT_API void nalchi_bit_stream_measurer_write_bool (nalchi::bit_stream_measurer* self, bool data);
280+
281+ // / @brief Fake-writes a `std::int8_t` value to the bit stream.
282+ // / @param data Data to fake-write.
283+ // / @param min Minimum value allowed for @p data.
284+ // / @param max Maximum value allowed for @p data.
285+ NALCHI_FLAT_API void nalchi_bit_stream_measurer_write_s8 (nalchi::bit_stream_measurer* self, std::int8_t data, std::int8_t min, std::int8_t max);
286+
287+ // / @brief Fake-writes a `std::uint8_t` value to the bit stream.
288+ // / @param data Data to fake-write.
289+ // / @param min Minimum value allowed for @p data.
290+ // / @param max Maximum value allowed for @p data.
291+ NALCHI_FLAT_API void nalchi_bit_stream_measurer_write_u8 (nalchi::bit_stream_measurer* self, std::uint8_t data, std::uint8_t min, std::uint8_t max);
292+
293+ // / @brief Fake-writes a `std::int16_t` value to the bit stream.
294+ // / @param data Data to fake-write.
295+ // / @param min Minimum value allowed for @p data.
296+ // / @param max Maximum value allowed for @p data.
297+ NALCHI_FLAT_API void nalchi_bit_stream_measurer_write_s16 (nalchi::bit_stream_measurer* self, std::int16_t data, std::int16_t min, std::int16_t max);
298+
299+ // / @brief Fake-writes a `std::uint16_t` value to the bit stream.
300+ // / @param data Data to fake-write.
301+ // / @param min Minimum value allowed for @p data.
302+ // / @param max Maximum value allowed for @p data.
303+ NALCHI_FLAT_API void nalchi_bit_stream_measurer_write_u16 (nalchi::bit_stream_measurer* self, std::uint16_t data, std::uint16_t min, std::uint16_t max);
304+
305+ // / @brief Fake-writes a `std::int32_t` value to the bit stream.
306+ // / @param data Data to fake-write.
307+ // / @param min Minimum value allowed for @p data.
308+ // / @param max Maximum value allowed for @p data.
309+ NALCHI_FLAT_API void nalchi_bit_stream_measurer_write_s32 (nalchi::bit_stream_measurer* self, std::int32_t data, std::int32_t min, std::int32_t max);
310+
311+ // / @brief Fake-writes a `std::uint32_t` value to the bit stream.
312+ // / @param data Data to fake-write.
313+ // / @param min Minimum value allowed for @p data.
314+ // / @param max Maximum value allowed for @p data.
315+ NALCHI_FLAT_API void nalchi_bit_stream_measurer_write_u32 (nalchi::bit_stream_measurer* self, std::uint32_t data, std::uint32_t min, std::uint32_t max);
316+
317+ // / @brief Fake-writes a `std::int64_t` value to the bit stream.
318+ // / @param data Data to fake-write.
319+ // / @param min Minimum value allowed for @p data.
320+ // / @param max Maximum value allowed for @p data.
321+ NALCHI_FLAT_API void nalchi_bit_stream_measurer_write_s64 (nalchi::bit_stream_measurer* self, std::int64_t data, std::int64_t min, std::int64_t max);
322+
323+ // / @brief Fake-writes a `std::uint64_t` value to the bit stream.
324+ // / @param data Data to fake-write.
325+ // / @param min Minimum value allowed for @p data.
326+ // / @param max Maximum value allowed for @p data.
327+ NALCHI_FLAT_API void nalchi_bit_stream_measurer_write_u64 (nalchi::bit_stream_measurer* self, std::uint64_t data, std::uint64_t min, std::uint64_t max);
328+
329+ // / @brief Fake-writes a float value to the bit stream.
330+ // / @param data Data to fake-write.
331+ NALCHI_FLAT_API void nalchi_bit_stream_measurer_write_float (nalchi::bit_stream_measurer* self, float data);
332+
333+ // / @brief Fake-writes a double value to the bit stream.
334+ // / @param data Data to fake-write.
335+ NALCHI_FLAT_API void nalchi_bit_stream_measurer_write_double (nalchi::bit_stream_measurer* self, double data);
336+
337+ // / @brief Fake-writes a null-terminated ordinary string to the bit stream.
338+ // / @param str String to fake-write.
339+ NALCHI_FLAT_API void nalchi_bit_stream_measurer_write_ordinary_string (nalchi::bit_stream_measurer* self, const char * str);
340+
341+ // / @brief Fake-writes a null-terminated wide string to the bit stream.
342+ // / @param str String to fake-write.
343+ NALCHI_FLAT_API void nalchi_bit_stream_measurer_write_wide_string (nalchi::bit_stream_measurer* self, const wchar_t * str);
344+
345+ // / @brief Fake-writes a null-terminated UTF-8 string to the bit stream.
346+ // / @param str String to fake-write.
347+ NALCHI_FLAT_API void nalchi_bit_stream_measurer_write_utf8_string (nalchi::bit_stream_measurer* self, const char8_t * str);
348+
349+ // / @brief Fake-writes a null-terminated UTF-16 string to the bit stream.
350+ // / @param str String to fake-write.
351+ NALCHI_FLAT_API void nalchi_bit_stream_measurer_write_utf16_string (nalchi::bit_stream_measurer* self, const char16_t * str);
352+
353+ // / @brief Fake-writes a null-terminated UTF-32 string to the bit stream.
354+ // / @param str String to fake-write.
355+ NALCHI_FLAT_API void nalchi_bit_stream_measurer_write_utf32_string (nalchi::bit_stream_measurer* self, const char32_t * str);
356+
250357// / @brief Constructs a `bit_stream_reader` instance without a buffer.
251358// /
252359// / This constructor can be useful if you want to set the buffer afterwards. \n
0 commit comments