Luna/libluna/include/luna/Buffer.h
apio 89bea931cd
All checks were successful
continuous-integration/drone/push Build is passing
libluna: Add a very simple Buffer class, to help implement tmpfs files
2023-03-11 00:27:08 +01:00

41 lines
624 B
C++

#pragma once
#include <luna/Result.h>
#include <luna/Types.h>
class Buffer
{
public:
Buffer();
~Buffer();
Buffer(Buffer&& other);
Buffer(const Buffer& other) = delete; // For now.
static Result<Buffer> create_sized(usize size);
Result<void> try_resize(usize new_size);
Result<u8*> create_slice_at_end(usize size);
u8* data()
{
return m_data;
}
const u8* data() const
{
return m_data;
}
usize size() const
{
return m_size;
}
private:
Buffer(u8* data, usize size);
u8* m_data { nullptr };
usize m_size { 0 };
};