Packed Types API¶
Packed types maintain the zero-copy invariant by storing values in compressed form.
Packed¶
Single packed value with specified codec.
template<typename T, typename Codec>
class Packed {
public:
Packed();
explicit Packed(const T& value);
T get() const;
operator T() const;
size_t byte_size() const;
const uint8_t* data() const;
bool operator==(const Packed& other) const;
bool operator!=(const Packed& other) const;
bool operator<(const Packed& other) const;
};
PackedVector¶
Dynamic array with zero-copy semantics.
template<typename T>
class PackedVector {
public:
using value_type = T;
using iterator = /* proxy iterator */;
PackedVector();
explicit PackedVector(size_t count);
void push_back(const T& value);
void pop_back();
T operator[](size_t index) const;
T at(size_t index) const;
size_t size() const;
bool empty() const;
void clear();
iterator begin();
iterator end();
size_t byte_size() const;
const uint8_t* data() const;
};
See API Overview for complete documentation.