Files
ArduinoJson/src/ArduinoJson/Object/JsonPair.hpp

59 lines
1.3 KiB
C++
Raw Normal View History

// ArduinoJson - https://arduinojson.org
2022-01-01 10:00:54 +01:00
// Copyright © 2014-2022, Benoit BLANCHON
2018-11-30 17:53:54 +01:00
// MIT License
#pragma once
2022-12-19 12:02:48 +01:00
#include <ArduinoJson/Strings/JsonString.hpp>
#include <ArduinoJson/Variant/VariantConstRef.hpp>
#include <ArduinoJson/Variant/VariantRef.hpp>
2018-11-30 17:53:54 +01:00
namespace ARDUINOJSON_NAMESPACE {
// A key value pair for CollectionData.
2022-12-19 12:16:35 +01:00
class JsonPair {
2018-11-30 17:53:54 +01:00
public:
2022-12-19 12:16:35 +01:00
JsonPair(MemoryPool* pool, VariantSlot* slot) {
2018-11-30 17:53:54 +01:00
if (slot) {
2022-12-19 12:02:48 +01:00
_key = JsonString(slot->key(), slot->ownsKey() ? JsonString::Copied
: JsonString::Linked);
_value = VariantRef(pool, slot->data());
2018-11-30 17:53:54 +01:00
}
}
2022-12-19 12:02:48 +01:00
JsonString key() const {
2018-11-30 17:53:54 +01:00
return _key;
}
VariantRef value() const {
return _value;
}
private:
2022-12-19 12:02:48 +01:00
JsonString _key;
2018-11-30 17:53:54 +01:00
VariantRef _value;
};
2022-12-19 12:16:35 +01:00
class JsonPairConst {
2018-11-30 17:53:54 +01:00
public:
2022-12-19 12:16:35 +01:00
JsonPairConst(const VariantSlot* slot) {
2018-11-30 17:53:54 +01:00
if (slot) {
2022-12-19 12:02:48 +01:00
_key = JsonString(slot->key(), slot->ownsKey() ? JsonString::Copied
: JsonString::Linked);
_value = VariantConstRef(slot->data());
2018-11-30 17:53:54 +01:00
}
}
2022-12-19 12:02:48 +01:00
JsonString key() const {
2018-11-30 17:53:54 +01:00
return _key;
}
VariantConstRef value() const {
return _value;
}
private:
2022-12-19 12:02:48 +01:00
JsonString _key;
2018-11-30 17:53:54 +01:00
VariantConstRef _value;
};
} // namespace ARDUINOJSON_NAMESPACE