initial upload
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
#pragma once
|
||||
|
||||
#include <ckitty/memory/primitives.hpp>
|
||||
|
||||
namespace ckitty {
|
||||
|
||||
/**
|
||||
* @brief Represents a piece of a shared buffer that
|
||||
* is not owned by this object.
|
||||
*/
|
||||
class data_view {
|
||||
private:
|
||||
|
||||
const u8* _begin;
|
||||
const u8* _end;
|
||||
|
||||
public:
|
||||
|
||||
data_view(const u8* begin, const u8* end)
|
||||
: _begin(begin), _end(end) {}
|
||||
|
||||
data_view(const u8* data, const size length)
|
||||
: _begin(data), _end(data + length) {}
|
||||
|
||||
data_view(const std::string& str)
|
||||
: _begin((const u8*) str.begin().base()),
|
||||
_end((const u8*) str.end().base()) {}
|
||||
|
||||
const u8* begin() const {
|
||||
return _begin;
|
||||
}
|
||||
|
||||
const u8* end() const {
|
||||
return _end;
|
||||
}
|
||||
|
||||
u8 operator[](size i) const {
|
||||
return *(_begin + i);
|
||||
}
|
||||
|
||||
size length() const {
|
||||
return _end - _begin;
|
||||
}
|
||||
|
||||
const data_view sub_off(size offset, size length) const {
|
||||
return data_view(_begin + offset, _begin + offset + length);
|
||||
}
|
||||
|
||||
const data_view sub_abs(size begin, size end) const {
|
||||
return data_view(_begin + begin, _begin + end);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user