#pragma once #include class Buffer { public: uint8_t* buffer = nullptr; size_t taken = 0; size_t size = 0; Buffer(size_t size); Buffer(); ~Buffer(); bool resize(size_t new_size); int add_end(uint8_t* data, size_t data_size); int add_middle(uint8_t* data, size_t data_size, size_t index); // Removes data from buffer without checking if it's in the buffer void remove_fast(uint8_t* data, size_t data_size); void remove(size_t index, size_t data_size); size_t find(uint8_t* data, size_t data_size); void remove(uint8_t* data, size_t data_size); void clear() { taken = 0; } };