Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/3party
diff options
context:
space:
mode:
authorAnatoly Serdtcev <serdtcev@maps.me>2019-04-17 16:40:17 +0300
committermpimenov <mpimenov@users.noreply.github.com>2019-04-19 17:12:26 +0300
commit1a33c9b777e35bf11b9a590f8e189edca3135fe1 (patch)
treed0de93b9a5f1cdbf92a257a8b9261b26d84cef91 /3party
parent3c8d57d8f06d46eafbb0c203c7931dbb069aaf27 (diff)
[generator:geo_objects] Fix region find: border check
Diffstat (limited to '3party')
-rw-r--r--3party/jansson/myjansson.hpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/3party/jansson/myjansson.hpp b/3party/jansson/myjansson.hpp
index 1963f4bb48..6f580671b0 100644
--- a/3party/jansson/myjansson.hpp
+++ b/3party/jansson/myjansson.hpp
@@ -12,6 +12,8 @@
#include <string>
#include <vector>
+#include <boost/optional.hpp>
+
#include "3party/jansson/src/jansson.h"
namespace base
@@ -68,6 +70,14 @@ json_t * GetJSONOptionalField(json_t * root, char const * field);
bool JSONIsNull(json_t * root);
} // namespace base
+template <typename T>
+T FromJSON(json_t * root)
+{
+ T result{};
+ FromJSON(root, result);
+ return result;
+}
+
inline void FromJSON(json_t * root, json_t *& value) { value = root; }
void FromJSON(json_t * root, double & result);
@@ -99,6 +109,18 @@ void FromJSONObject(json_t * root, std::string const & field, T & result)
}
template <typename T>
+boost::optional<T> FromJSONObjectOptional(json_t * root, char const * field)
+{
+ auto * json = base::GetJSONOptionalField(root, field);
+ if (!json)
+ return {};
+
+ boost::optional<T> result{T{}};
+ FromJSON(json, *result);
+ return result;
+}
+
+template <typename T>
void FromJSONObjectOptionalField(json_t * root, std::string const & field, T & result)
{
auto * json = base::GetJSONOptionalField(root, field);