| 12345678910111213141516171819202122232425262728293031 |
- export module Core.Buffer;
- import Core.Types;
- export namespace Core {
- class Buffer final {
- size_t length;
- size_t capacity;
- char* buffer;
- public:
- Buffer();
- Buffer(const Buffer& other);
- Buffer(Buffer&& other) noexcept;
- ~Buffer();
- Buffer& operator=(const Buffer& other);
- Buffer& operator=(Buffer&& other) noexcept;
- Buffer& add(const void* data, size_t size);
- template<typename T>
- Buffer& add(const T& t) {
- return add(&t, sizeof(T));
- }
- size_t getLength() const;
- const char* getData() const;
- void clear();
- void swap(Buffer& other) noexcept;
- };
- }
|