diff --git a/deps/ox/src/ox/fs/filestore/ptr.hpp b/deps/ox/src/ox/fs/filestore/ptr.hpp index 0169b6b7..934282d6 100644 --- a/deps/ox/src/ox/fs/filestore/ptr.hpp +++ b/deps/ox/src/ox/fs/filestore/ptr.hpp @@ -56,6 +56,12 @@ class Ptr { inline operator size_t() const; + template + inline const Ptr subPtr(size_t offset, size_t size) const; + + template + inline const Ptr subPtr(size_t offset) const; + template inline Ptr subPtr(size_t offset, size_t size); @@ -162,6 +168,20 @@ inline Ptr::operator size_t() const { return 0; } +template +template +inline const Ptr Ptr::subPtr(size_t offset, size_t size) const { + auto out = Ptr(get(), this->size(), offset, size); + return out; +} + +template +template +inline const Ptr Ptr::subPtr(size_t offset) const { + oxTrace("ox::fs::Ptr::subPtr") << m_itemOffset << this->size() << offset << m_itemSize << (m_itemSize - offset); + return subPtr(offset, m_itemSize - offset); +} + template template inline Ptr Ptr::subPtr(size_t offset, size_t size) {