BinaryReaderWriter: Add class for files as well as spans

This commit is contained in:
Stenzek
2024-07-28 21:58:50 +10:00
parent a3f8162488
commit ab7a3e1934
9 changed files with 818 additions and 295 deletions

View File

@ -321,6 +321,22 @@ public:
std::span<T> span() { return std::span<T>(m_data, m_size); }
std::span<const T> cspan() const { return std::span<const T>(m_data, m_size); }
std::span<T> span(size_t offset, size_t size = static_cast<size_t>(-1))
{
std::span<T> ret;
if (offset < m_size) [[likely]]
ret = std::span<T>(m_data + offset, std::min(m_size - offset, size));
return ret;
}
std::span<const T> cspan(size_t offset, size_t size = static_cast<size_t>(-1)) const
{
std::span<const T> ret;
if (offset < m_size) [[likely]]
ret = std::span<const T>(m_data + offset, std::min(m_size - offset, size));
return ret;
}
this_type& operator=(const this_type& rhs)
{
assign(rhs);