1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- #pragma once
- #include <stdint.h>
- #include "foundation/types.h"
- #ifdef __cplusplus
- extern "C" {
- #endif
- typedef struct bytereader_struct_t
- {
- size_t byte_length;
- const uint8_t *data_ptr;
- const void *data;
- } bytereader_value_t, bytereader_s, *bytereader_t;
- void bytereader_init(bytereader_t byte_reader, const void *data, size_t byte_length);
- static size_t bytereader_size(bytereader_t byte_reader)
- {
- return byte_reader->byte_length;
- }
- void bytereader_advance(bytereader_t byte_reader, size_t bytes);
- void bytereader_reset(bytereader_t byte_reader);
- static const void *bytereader_pointer(bytereader_t byte_reader)
- {
- return byte_reader->data_ptr;
- }
-
- size_t bytereader_find_zero(bytereader_t byte_reader);
-
- void bytereader_show_n(bytereader_t byte_reader, void *destination, size_t bytes);
- void bytereader_read_n(bytereader_t byte_reader, void *destination, size_t bytes);
-
- uint8_t bytereader_show_u8(bytereader_t byte_reader);
- uint8_t bytereader_read_u8(bytereader_t byte_reader);
- int8_t bytereader_show_s8(bytereader_t byte_reader);
- int8_t bytereader_read_s8(bytereader_t byte_reader);
-
- uint16_t bytereader_show_u16_le(bytereader_t byte_reader);
- uint16_t bytereader_read_u16_le(bytereader_t byte_reader);
- int16_t bytereader_show_s16_le(bytereader_t byte_reader);
- int16_t bytereader_read_s16_le(bytereader_t byte_reader);
-
- uint16_t bytereader_show_u16_be(bytereader_t byte_reader);
- uint16_t bytereader_read_u16_be(bytereader_t byte_reader);
- int16_t bytereader_show_s16_be(bytereader_t byte_reader);
- int16_t bytereader_read_s16_be(bytereader_t byte_reader);
-
- uint32_t bytereader_show_u32_be(bytereader_t byte_reader);
- uint32_t bytereader_read_u32_be(bytereader_t byte_reader);
-
- uint32_t bytereader_show_u32_le(bytereader_t byte_reader);
- uint32_t bytereader_read_u32_le(bytereader_t byte_reader);
-
- float bytereader_show_f32_be(bytereader_t byte_reader);
- float bytereader_read_f32_be(bytereader_t byte_reader);
- GUID bytereader_read_uuid_be(bytereader_t byte_reader);
- GUID bytereader_read_uuid_le(bytereader_t byte_reader);
- #ifdef __cplusplus
- }
- #endif
|