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