6#include "slideio/core/slideio_core_def.hpp"
13#pragma warning( push )
14#pragma warning(disable: 4251)
28 enum class Type { Null, Bool, Int, Double, String, Array, Object };
38 bool isNull()
const {
return type() == Type::Null; }
39 bool isObject()
const {
return type() == Type::Object; }
40 bool isArray()
const {
return type() == Type::Array; }
43 int64_t asInt()
const;
44 double asDouble()
const;
45 std::string asString()
const;
48 bool contains(
const std::string& key)
const;
49 Metadata operator[](
const std::string& key)
const;
50 Metadata operator[](
size_t index)
const;
51 Metadata find(
const std::string& jsonPointer)
const;
52 std::vector<std::string> keys()
const;
54 std::string toJson(
int indent = -1)
const;
57 static Metadata fromImpl(std::shared_ptr<const Impl> impl);
60 explicit Metadata(std::shared_ptr<const Impl> impl);
61 std::shared_ptr<const Impl> m_impl;
64 class SLIDEIO_CORE_EXPORTS MetadataBuilder
69 MetadataBuilder(
const MetadataBuilder&);
70 MetadataBuilder(MetadataBuilder&&) noexcept;
71 MetadataBuilder& operator=(const MetadataBuilder&);
72 MetadataBuilder& operator=(MetadataBuilder&&) noexcept;
75 void set(const std::
string& value);
77 void set(int64_t value);
78 void set(
double value);
79 void set(const
char* value);
86 MetadataBuilder operator[](const std::
string& key);
93 MetadataBuilder operator[](
size_t index);
105 bool isObject() const;
106 bool isArray() const;
113 static MetadataBuilder fromImpl(std::shared_ptr<Impl> impl);
116 explicit MetadataBuilder(std::shared_ptr<Impl> impl);
117 std::shared_ptr<Impl> m_impl;
122#pragma warning( pop )
Definition: exceptions.hpp:15