LibSQL: Add the 'extend' operation to the Tuple class

Tuple::extend is similar to the Vector method of the same name; it
concatenates a second Tuple to the current one.
This commit is contained in:
Jan de Visser 2021-11-02 16:34:05 -04:00 committed by Andreas Kling
parent f3a9d61891
commit c2c47fb9bb
Notes: sideshowbarker 2024-07-18 01:19:23 +09:00
2 changed files with 10 additions and 0 deletions

View file

@ -132,6 +132,15 @@ Tuple& Tuple::operator+=(Value const& value)
return *this;
}
void Tuple::extend(Tuple const& other)
{
VERIFY((descriptor()->size() == size()) || (descriptor()->size() >= size() + other.size()));
if (descriptor()->size() == size()) {
descriptor()->extend(other.descriptor());
}
m_data.extend(other.m_data);
}
bool Tuple::is_compatible(Tuple const& other) const
{
if ((m_descriptor->size() == 0) && (other.m_descriptor->size() == 0)) {

View file

@ -55,6 +55,7 @@ public:
Value& operator[](String const& name);
void append(Value const&);
Tuple& operator+=(Value const&);
void extend(Tuple const&);
[[nodiscard]] bool is_compatible(Tuple const&) const;
[[nodiscard]] u32 pointer() const { return m_pointer; }