Pair.hpp 993 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. // ArduinoJson - arduinojson.org
  2. // Copyright Benoit Blanchon 2014-2019
  3. // MIT License
  4. #pragma once
  5. #include <ArduinoJson/Strings/String.hpp>
  6. #include <ArduinoJson/Variant/VariantRef.hpp>
  7. namespace ARDUINOJSON_NAMESPACE {
  8. // A key value pair for CollectionData.
  9. class Pair {
  10. public:
  11. Pair(MemoryPool* pool, VariantSlot* slot) {
  12. if (slot) {
  13. _key = String(slot->key(), !slot->ownsKey());
  14. _value = VariantRef(pool, slot->data());
  15. }
  16. }
  17. String key() const {
  18. return _key;
  19. }
  20. VariantRef value() const {
  21. return _value;
  22. }
  23. private:
  24. String _key;
  25. VariantRef _value;
  26. };
  27. class PairConst {
  28. public:
  29. PairConst(const VariantSlot* slot) {
  30. if (slot) {
  31. _key = String(slot->key(), !slot->ownsKey());
  32. _value = VariantConstRef(slot->data());
  33. }
  34. }
  35. String key() const {
  36. return _key;
  37. }
  38. VariantConstRef value() const {
  39. return _value;
  40. }
  41. private:
  42. String _key;
  43. VariantConstRef _value;
  44. };
  45. } // namespace ARDUINOJSON_NAMESPACE