mirror of
https://github.com/eledio-devices/thirdparty-ArduinoJson.git
synced 2025-11-01 08:48:30 +01:00
61 lines
1.2 KiB
C++
61 lines
1.2 KiB
C++
// ArduinoJson - https://arduinojson.org
|
|
// Copyright © 2014-2022, Benoit BLANCHON
|
|
// MIT License
|
|
|
|
#pragma once
|
|
|
|
#include <stddef.h> // size_t
|
|
|
|
#include <ArduinoJson/Collection/CollectionData.hpp>
|
|
#include <ArduinoJson/Numbers/Float.hpp>
|
|
#include <ArduinoJson/Numbers/Integer.hpp>
|
|
|
|
namespace ARDUINOJSON_NAMESPACE {
|
|
|
|
enum {
|
|
VALUE_MASK = 0x7F,
|
|
|
|
OWNED_VALUE_BIT = 0x01,
|
|
VALUE_IS_NULL = 0,
|
|
VALUE_IS_LINKED_RAW = 0x02,
|
|
VALUE_IS_OWNED_RAW = 0x03,
|
|
VALUE_IS_LINKED_STRING = 0x04,
|
|
VALUE_IS_OWNED_STRING = 0x05,
|
|
|
|
// CAUTION: no OWNED_VALUE_BIT below
|
|
|
|
VALUE_IS_BOOLEAN = 0x06,
|
|
|
|
NUMBER_BIT = 0x08,
|
|
VALUE_IS_UNSIGNED_INTEGER = 0x08,
|
|
VALUE_IS_SIGNED_INTEGER = 0x0A,
|
|
VALUE_IS_FLOAT = 0x0C,
|
|
|
|
VALUE_IS_POINTER = 0x10,
|
|
|
|
COLLECTION_MASK = 0x60,
|
|
VALUE_IS_OBJECT = 0x20,
|
|
VALUE_IS_ARRAY = 0x40,
|
|
|
|
OWNED_KEY_BIT = 0x80
|
|
};
|
|
|
|
struct RawData {
|
|
const char *data;
|
|
size_t size;
|
|
};
|
|
|
|
union VariantContent {
|
|
Float asFloat;
|
|
bool asBoolean;
|
|
UInt asUnsignedInteger;
|
|
Integer asSignedInteger;
|
|
CollectionData asCollection;
|
|
const class VariantData *asPointer;
|
|
struct {
|
|
const char *data;
|
|
size_t size;
|
|
} asString;
|
|
};
|
|
} // namespace ARDUINOJSON_NAMESPACE
|