ladybird/AK/JsonArray.h
2019-06-24 12:02:31 +02:00

38 lines
803 B
C++

#pragma once
#include <AK/JsonValue.h>
#include <AK/Vector.h>
namespace AK {
class JsonArray {
public:
JsonArray() {}
~JsonArray() {}
int size() const { return m_values.size(); }
bool is_empty() const { return m_values.is_empty(); }
const JsonValue& at(int index) const { return m_values.at(index); }
const JsonValue& operator[](int index) const { return at(index); }
void clear() { m_values.clear(); }
void append(const JsonValue& value) { m_values.append(value); }
String serialized() const;
void serialize(StringBuilder&) const;
template<typename Callback>
void for_each(Callback callback) const
{
for (auto& value : m_values)
callback(value);
}
private:
Vector<JsonValue> m_values;
};
}
using AK::JsonArray;