mirror of
https://github.com/ton-blockchain/ton
synced 2025-03-09 15:40:10 +00:00
pow-testgiver support
This commit is contained in:
parent
dbde9c1c40
commit
f064b1047a
257 changed files with 6665 additions and 2608 deletions
|
@ -27,20 +27,11 @@
|
|||
#include "td/utils/StringBuilder.h"
|
||||
|
||||
#include <new>
|
||||
#include <tuple>
|
||||
#include <type_traits>
|
||||
#include <utility>
|
||||
|
||||
namespace td {
|
||||
|
||||
template <class... Args>
|
||||
std::tuple<const Args &...> ctie(const Args &... args) TD_WARN_UNUSED_RESULT;
|
||||
|
||||
template <class... Args>
|
||||
std::tuple<const Args &...> ctie(const Args &... args) {
|
||||
return std::tie(args...);
|
||||
}
|
||||
|
||||
class JsonTrue {
|
||||
public:
|
||||
friend StringBuilder &operator<<(StringBuilder &sb, const JsonTrue &val) {
|
||||
|
@ -210,8 +201,11 @@ class JsonBuilder {
|
|||
return offset_ >= 0;
|
||||
}
|
||||
void print_offset() {
|
||||
for (int x = 0; x < offset_; x++) {
|
||||
sb_ << " ";
|
||||
if (offset_ >= 0) {
|
||||
sb_ << '\n';
|
||||
for (int x = 0; x < offset_; x++) {
|
||||
sb_ << " ";
|
||||
}
|
||||
}
|
||||
}
|
||||
void dec_offset() {
|
||||
|
@ -307,9 +301,7 @@ class JsonScope {
|
|||
*sb_ << x;
|
||||
return *this;
|
||||
}
|
||||
JsonScope &operator<<(bool x) {
|
||||
return *this << JsonBool(x);
|
||||
}
|
||||
JsonScope &operator<<(bool x) = delete;
|
||||
JsonScope &operator<<(int32 x) {
|
||||
return *this << JsonInt(x);
|
||||
}
|
||||
|
@ -319,8 +311,6 @@ class JsonScope {
|
|||
JsonScope &operator<<(double x) {
|
||||
return *this << JsonFloat(x);
|
||||
}
|
||||
template <class T>
|
||||
JsonScope &operator<<(const T *x); // not implemented
|
||||
template <size_t N>
|
||||
JsonScope &operator<<(const char (&x)[N]) {
|
||||
return *this << JsonString(Slice(x));
|
||||
|
@ -328,9 +318,6 @@ class JsonScope {
|
|||
JsonScope &operator<<(const char *x) {
|
||||
return *this << JsonString(Slice(x));
|
||||
}
|
||||
JsonScope &operator<<(const string &x) {
|
||||
return *this << JsonString(Slice(x));
|
||||
}
|
||||
JsonScope &operator<<(Slice x) {
|
||||
return *this << JsonString(x);
|
||||
}
|
||||
|
@ -428,16 +415,8 @@ class JsonObjectScope : public JsonScope {
|
|||
}
|
||||
*sb_ << "}";
|
||||
}
|
||||
template <class S, class T>
|
||||
JsonObjectScope &operator<<(std::tuple<S, T> key_value) {
|
||||
return (*this)(std::get<0>(key_value), std::get<1>(key_value));
|
||||
}
|
||||
template <class S, class T>
|
||||
JsonObjectScope &operator<<(std::pair<S, T> key_value) {
|
||||
return (*this)(key_value.first, key_value.second);
|
||||
}
|
||||
template <class S, class T>
|
||||
JsonObjectScope &operator()(S &&key, T &&value) {
|
||||
template <class T>
|
||||
JsonObjectScope &operator()(Slice key, T &&value) {
|
||||
CHECK(is_active());
|
||||
if (is_first_) {
|
||||
*sb_ << ",";
|
||||
|
@ -624,7 +603,7 @@ class JsonValue : public Jsonable {
|
|||
case Type::Object: {
|
||||
auto object = scope->enter_object();
|
||||
for (auto &key_value : get_object()) {
|
||||
object << ctie(JsonString(key_value.first), key_value.second);
|
||||
object(key_value.first, key_value.second);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
@ -846,6 +825,7 @@ class JsonObjectImpl : Jsonable {
|
|||
private:
|
||||
F f_;
|
||||
};
|
||||
|
||||
template <class F>
|
||||
auto json_object(F &&f) {
|
||||
return JsonObjectImpl<F>(std::forward<F>(f));
|
||||
|
@ -881,6 +861,8 @@ auto json_array(const A &a, F &&f) {
|
|||
|
||||
bool has_json_object_field(const JsonObject &object, Slice name);
|
||||
|
||||
JsonValue get_json_object_field_force(JsonObject &object, Slice name) TD_WARN_UNUSED_RESULT;
|
||||
|
||||
Result<JsonValue> get_json_object_field(JsonObject &object, Slice name, JsonValue::Type type,
|
||||
bool is_optional = true) TD_WARN_UNUSED_RESULT;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue