* @author Jordan DeLong <delong.j@fb.com>
*/
-#ifndef FOLLY_DYNAMIC_H_
-#define FOLLY_DYNAMIC_H_
+#pragma once
#include <cstdint>
#include <initializer_list>
#include <boost/operators.hpp>
-#include <folly/FBString.h>
#include <folly/Range.h>
#include <folly/Traits.h>
/* implicit */ dynamic(StringPiece val);
/* implicit */ dynamic(char const* val);
/* implicit */ dynamic(std::string const& val);
- /* implicit */ dynamic(fbstring const& val);
- /* implicit */ dynamic(fbstring&& val);
+ /* implicit */ dynamic(std::string&& val);
/*
* This is part of the plumbing for array() and object(), above.
FOLLY_DEPRECATED(
"Initializer list syntax is deprecated (#10300209). Use dynamic::array.")
/* implicit */ dynamic(std::initializer_list<dynamic> il);
- dynamic(std::initializer_list<dynamic> il, PrivateTag);
FOLLY_DEPRECATED(
"Initializer list syntax is deprecated (#10300209). Use dynamic::array.")
dynamic& operator=(std::initializer_list<dynamic> il);
* since arrays and objects are generally best dealt with as a
* dynamic.
*/
- fbstring asString() const;
+ std::string asString() const;
double asDouble() const;
int64_t asInt() const;
bool asBool() const;
*
* These will throw a TypeError if the dynamic has a different type.
*/
- const fbstring& getString() const&;
+ const std::string& getString() const&;
double getDouble() const&;
int64_t getInt() const&;
bool getBool() const&;
- fbstring& getString() &;
+ std::string& getString() &;
double& getDouble() &;
int64_t& getInt() &;
bool& getBool() &;
- fbstring getString() &&;
+ std::string getString() &&;
double getDouble() &&;
int64_t getInt() &&;
bool getBool() &&;
template<class T> struct GetAddrImpl;
template<class T> struct PrintImpl;
+ dynamic(Array&& array, PrivateTag);
+
template<class T> T const& get() const;
template<class T> T& get();
template<class T> T* get_nothrow() & noexcept;
bool boolean;
double doubl;
int64_t integer;
- fbstring string;
+ std::string string;
/*
* Objects are placement new'd here. We have to use a char buffer
}
#include <folly/dynamic-inl.h>
-
-#endif