JsonWrapper.h
1 #ifndef JSONWRAPPER_HIDDEN_H
2 #define JSONWRAPPER_HIDDEN_H
3 #include <string>
4 #include <any>
5 
6 namespace helib {
7 
8 struct JsonWrapper
9 {
10 public:
11  explicit JsonWrapper(const std::any& json_repr) : json_obj(json_repr) {}
12  explicit operator bool() const { return json_obj.has_value(); }
13  const std::any& getJSONobj() const { return json_obj; }
14  JsonWrapper at(const std::string& key) const;
15  std::string toString() const;
16 
17  friend std::ostream& operator<<(std::ostream& str,
18  const JsonWrapper& wrapper);
19 
20  std::string pretty(long indent = 2) const;
21 
22 private:
23  std::any json_obj;
24 };
25 
26 } // namespace helib
27 
28 #endif // JSONWRAPPER_HIDDEN_H
Definition: apiAttributes.h:21
Definition: JsonWrapper.h:9
JsonWrapper at(const std::string &key) const
Definition: JsonWrapper.cpp:32
friend std::ostream & operator<<(std::ostream &str, const JsonWrapper &wrapper)
Definition: JsonWrapper.cpp:42
std::string pretty(long indent=2) const
Definition: JsonWrapper.cpp:12
std::string toString() const
Definition: JsonWrapper.cpp:22
const std::any & getJSONobj() const
Definition: JsonWrapper.h:13
JsonWrapper(const std::any &json_repr)
Definition: JsonWrapper.h:11