0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-12-27 07:54:05 +01:00

ircd::json: Move these outside of value class.

This commit is contained in:
Jason Volk 2018-01-23 21:18:47 -08:00
parent e4863aa073
commit ac27005cd7
2 changed files with 23 additions and 25 deletions

View file

@ -26,10 +26,17 @@ namespace ircd::json
{ {
struct value; struct value;
using values = std::initializer_list<value>;
extern const string_view literal_null;
extern const string_view literal_true;
extern const string_view literal_false;
extern const string_view empty_string;
extern const string_view empty_object;
extern const string_view empty_array;
size_t serialized(const bool &); size_t serialized(const bool &);
size_t serialized(const value *const &begin, const value *const &end); size_t serialized(const value *const &begin, const value *const &end);
using values = std::initializer_list<value>;
size_t serialized(const values &); size_t serialized(const values &);
string_view stringify(mutable_buffer &, const value *const &begin, const value *const &end); string_view stringify(mutable_buffer &, const value *const &begin, const value *const &end);
@ -82,14 +89,6 @@ struct ircd::json::value
uint64_t alloc : 1; ///< indicates the pointer for type is owned uint64_t alloc : 1; ///< indicates the pointer for type is owned
uint64_t floats : 1; ///< for NUMBER type, integer or floating uint64_t floats : 1; ///< for NUMBER type, integer or floating
static const string_view literal_null;
static const string_view literal_true;
static const string_view literal_false;
static const string_view empty_string;
static const string_view empty_number;
static const string_view empty_object;
static const string_view empty_array;
using create_string_closure = std::function<void (const mutable_buffer &)>; using create_string_closure = std::function<void (const mutable_buffer &)>;
void create_string(const size_t &len, const create_string_closure &); void create_string(const size_t &len, const create_string_closure &);

View file

@ -857,8 +857,8 @@ ircd::json::stringify(mutable_buffer &buf,
{ {
if(string_view{v}.empty()) if(string_view{v}.empty())
{ {
consume(buf, copy(buf, value::empty_array)); consume(buf, copy(buf, empty_array));
return value::empty_array; return empty_array;
} }
consume(buf, copy(buf, string_view{v})); consume(buf, copy(buf, string_view{v}));
@ -1000,13 +1000,12 @@ const
// json/value.h // json/value.h
// //
const ircd::string_view ircd::json::value::literal_null {"null"}; const ircd::string_view ircd::json::literal_null { "null" };
const ircd::string_view ircd::json::value::literal_true {"true"}; const ircd::string_view ircd::json::literal_true { "true" };
const ircd::string_view ircd::json::value::literal_false {"false"}; const ircd::string_view ircd::json::literal_false { "false" };
const ircd::string_view ircd::json::value::empty_string {"\"\""}; const ircd::string_view ircd::json::empty_string { "\"\"" };
const ircd::string_view ircd::json::value::empty_number {"0"}; const ircd::string_view ircd::json::empty_object { "{}" };
const ircd::string_view ircd::json::value::empty_object {"{}"}; const ircd::string_view ircd::json::empty_array { "[]" };
const ircd::string_view ircd::json::value::empty_array {"[]"};
std::ostream & std::ostream &
ircd::json::operator<<(std::ostream &s, const value &v) ircd::json::operator<<(std::ostream &s, const value &v)
@ -1073,8 +1072,8 @@ ircd::json::stringify(mutable_buffer &buf,
break; break;
} }
//consume(buf, copy(buf, v.literal_null)); //consume(buf, copy(buf, literal_null));
consume(buf, copy(buf, v.empty_object)); consume(buf, copy(buf, empty_object));
break; break;
} }
@ -1092,8 +1091,8 @@ ircd::json::stringify(mutable_buffer &buf,
break; break;
} }
//consume(buf, copy(buf, v.literal_null)); //consume(buf, copy(buf, literal_null));
consume(buf, copy(buf, v.empty_array)); consume(buf, copy(buf, empty_array));
break; break;
} }
@ -1632,8 +1631,8 @@ ircd::json::stringify(mutable_buffer &buf,
{ {
if(v.empty() && defined(v)) if(v.empty() && defined(v))
{ {
consume(buf, copy(buf, value::empty_string)); consume(buf, copy(buf, empty_string));
return value::empty_string; return empty_string;
} }
consume(buf, copy(buf, string_view{v})); consume(buf, copy(buf, string_view{v}));