dius 0.1.0
Loading...
Searching...
No Matches
memory_region.h
Go to the documentation of this file.
1#pragma once
2
3#include "di/util/prelude.h"
4
5namespace dius {
7public:
8 MemoryRegion() = default;
9
10 constexpr explicit MemoryRegion(di::Span<di::Byte> data) : m_data(data) {}
11
12 constexpr MemoryRegion(MemoryRegion&& other) : m_data(di::exchange(other.m_data, {})) {}
13
15
16 constexpr auto operator=(MemoryRegion&& other) -> MemoryRegion& {
17 m_data = di::exchange(other.m_data, {});
18 return *this;
19 }
20
21 constexpr auto data() { return m_data.data(); }
22 constexpr auto data() const { return m_data.data(); }
23
24 constexpr auto size() const { return m_data.size(); }
25
26 constexpr auto span() { return m_data; }
27 constexpr auto span() const { return m_data; }
28
29 constexpr auto empty() const -> bool { return m_data.empty(); }
30
31private:
32 di::Span<di::Byte> m_data;
33};
34}
constexpr auto span()
Definition memory_region.h:26
constexpr auto data() const
Definition memory_region.h:22
constexpr auto operator=(MemoryRegion &&other) -> MemoryRegion &
Definition memory_region.h:16
constexpr MemoryRegion(di::Span< di::Byte > data)
Definition memory_region.h:10
constexpr auto data()
Definition memory_region.h:21
constexpr MemoryRegion(MemoryRegion &&other)
Definition memory_region.h:12
MemoryRegion()=default
constexpr auto span() const
Definition memory_region.h:27
constexpr auto empty() const -> bool
Definition memory_region.h:29
constexpr auto size() const
Definition memory_region.h:24
Definition error.h:7
Definition directory_entry.h:11