mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 18:07:34 +00:00
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:
parent
f3a9d61891
commit
c2c47fb9bb
2 changed files with 10 additions and 0 deletions
|
@ -132,6 +132,15 @@ Tuple& Tuple::operator+=(Value const& value)
|
||||||
return *this;
|
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
|
bool Tuple::is_compatible(Tuple const& other) const
|
||||||
{
|
{
|
||||||
if ((m_descriptor->size() == 0) && (other.m_descriptor->size() == 0)) {
|
if ((m_descriptor->size() == 0) && (other.m_descriptor->size() == 0)) {
|
||||||
|
|
|
@ -55,6 +55,7 @@ public:
|
||||||
Value& operator[](String const& name);
|
Value& operator[](String const& name);
|
||||||
void append(Value const&);
|
void append(Value const&);
|
||||||
Tuple& operator+=(Value const&);
|
Tuple& operator+=(Value const&);
|
||||||
|
void extend(Tuple const&);
|
||||||
[[nodiscard]] bool is_compatible(Tuple const&) const;
|
[[nodiscard]] bool is_compatible(Tuple const&) const;
|
||||||
|
|
||||||
[[nodiscard]] u32 pointer() const { return m_pointer; }
|
[[nodiscard]] u32 pointer() const { return m_pointer; }
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue