0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-12-29 08:54:02 +01:00
Commit graph

232 commits

Author SHA1 Message Date
Jason Volk
9d2a796f17 ircd::json: Elaborate on keys interface; cleanup; add comments. 2018-05-19 18:49:08 -07:00
Jason Volk
39e403c1d2 ircd::json: Add template to get tuple key string with runtime index. 2018-05-19 18:49:07 -07:00
Jason Volk
52976d3faf ircd::json: Fix tuple _key_transform constexpressness. 2018-05-19 18:49:03 -07:00
Jason Volk
ce6c4d357e ircd::json: Add flush watermarking to json::stack. 2018-05-07 23:48:31 -07:00
Jason Volk
671622d778 ircd::json: Preliminary rough splitup of tuple headers. 2018-05-06 22:28:17 -07:00
Jason Volk
dd69acbad3 ircd::json::stack: Handle and properly propagate flusher exception out of stack. 2018-04-13 16:03:34 -07:00
Jason Volk
54e3719097 ircd::json: Consolidate authority for value defined() semantics. 2018-04-11 23:40:31 -07:00
Jason Volk
97ec3a62ab ircd::json: Fix bugs related to bool type. 2018-04-11 23:40:30 -07:00
Jason Volk
baf8b192b1 ircd::json: Add the stack flusher semantic. 2018-04-10 19:32:56 -07:00
Jason Volk
9270937957 ircd::json: Simplify internal stack appending; pass expected append size. 2018-04-10 17:00:57 -07:00
Jason Volk
102ef2cb47 ircd::json: Object semantics for json::stack classes. 2018-04-10 13:48:14 -07:00
Jason Volk
6dda8d70eb ircd::json: Streamline some strung conversions. 2018-04-09 19:27:39 -07:00
Jason Volk
93316f4692 ircd::json: Deinline various value related. 2018-04-04 22:54:58 -07:00
Jason Volk
43e77537c6 ircd::json: Improve value ctor suite; maintain type of object/array; copy std::string. 2018-04-04 14:28:27 -07:00
Jason Volk
c35d74b7fd ircd::json: Remove redundant member passthru. 2018-04-04 14:10:53 -07:00
Jason Volk
7438c558e3 ircd::json: Tweak callstack path for this transform. 2018-04-04 14:00:57 -07:00
Jason Volk
4a1ca1a525 ircd::json: Deinline output validators from template. 2018-03-28 22:17:09 -07:00
Jason Volk
7ad99ab387 ircd::json: Add why() to specifically return err str from valid(). 2018-03-28 22:17:09 -07:00
Jason Volk
1a02642aef ircd::json: Eliminate redundant sort for tuple. 2018-03-28 18:12:49 -07:00
Jason Volk
e60370de75 ircd::json: Remove redundant. 2018-03-23 00:42:24 -07:00
Jason Volk
df605d5646 ircd::json: Add functions to determine if object members are sorted. 2018-03-21 12:33:43 -07:00
Jason Volk
615ccdc426 ircd::json: Hello, goodbye. 2018-03-20 23:51:14 -07:00
Jason Volk
fef1c0b1b8 ircd::json: Add stringify vector of object::member. 2018-03-20 23:40:31 -07:00
Jason Volk
7a9bb89506 ircd::json: All output through the generator. 2018-03-20 17:39:57 -07:00
Jason Volk
09d971fa9e ircd::json: Make print_error an assertion; improve output validation messages. 2018-03-20 16:31:02 -07:00
Jason Volk
2a539cb22c ircd::json: Ensure space for null string terminator in print(). 2018-03-20 14:12:44 -07:00
Jason Volk
931fe2439e ircd::json: Introduce the json::stack device. 2018-03-17 21:40:27 -07:00
Jason Volk
373a791158 ircd::json: Limit IOV size and take stringify buffer off-stack. 2018-03-17 11:53:21 -07:00
Jason Volk
8c02823d49 ircd: Tweak client error handling; fwddecl json::expectation_failure. 2018-03-08 07:40:41 -08:00
Jason Volk
664bee7f78 ircd::json: Add semantics to prevent json::strung'ing itself. 2018-03-05 01:09:37 -08:00
Jason Volk
2fcaf8c758 ircd::json: Add default ctor for array/object/vector const_iterators. 2018-02-28 22:33:50 -08:00
Jason Volk
ff94fdd3a6 ircd::json: Array list protocol for stringifying tuple. 2018-02-28 02:31:13 -08:00
Jason Volk
114bee0381 ircd::json: Add back support for tuple string reference indexing overloads. 2018-02-24 19:45:57 -08:00
Jason Volk
268861013e ircd::json: Add these for consistency. 2018-02-21 14:24:01 -08:00
Jason Volk
a8d72ebbaa ircd::json: Ensure rvalue-reference ownership transfer for these ctors. 2018-02-18 22:38:23 -08:00
Jason Volk
23fb76ae8e ircd::json: Improve the member/value construction relationship. 2018-02-18 22:38:23 -08:00
Jason Volk
f8e5ca20d3 ircd::json: Remove the double-indirected member stringify. 2018-02-18 22:35:35 -08:00
Jason Volk
42a22a6c79 ircd::json: Use consumption protocol for create_string closure. 2018-02-18 22:22:38 -08:00
Jason Volk
0e526484ea ircd::json: Ensure iov's are in a fixed location. 2018-02-18 22:18:52 -08:00
Jason Volk
575f5829dd ircd::json: Verifiably pasken the strongly typed object::size() result. 2018-02-17 16:17:59 -08:00
Jason Volk
39d2196336 ircd::json: Modernize json::strung ctor. 2018-02-17 14:07:46 -08:00
Jason Volk
0bf053197c ircd::json: Massage away json::value template ctor. 2018-02-09 21:33:06 -08:00
Jason Volk
e40f11429e ircd::json: Tuple defined(number) decides on max value rather than zero. 2018-02-08 14:01:53 -08:00
Jason Volk
be624ca7f6 Update Copyrastafaris. 2018-02-05 21:24:34 -08:00
Jason Volk
d53eef4ab6 ircd: Eliminate the raw_buffer concept. 2018-02-05 18:54:55 -08:00
Jason Volk
e3f671a523 ircd::json: Move property.h into tuple/ dir. 2018-02-02 14:58:55 -08:00
Jason Volk
2e356709bd ircd::json: Break up json.h into util.h 2018-01-30 10:26:46 -08:00
Jason Volk
01235e3851 ircd::json: Add a bang ADL for falsy semantic on object/array. 2018-01-30 10:14:41 -08:00
Jason Volk
08d00bb3c8 ircd::json: Add strongly typed empty() for object/array with an ADL. 2018-01-29 11:59:59 -08:00
Jason Volk
aefca6bea4 ircd::json: Move extern const strings out of value.h 2018-01-29 11:59:59 -08:00
Jason Volk
61e9bd018f ircd::json: Eliminate unnecessary print() overload. 2018-01-26 10:29:36 -08:00
Jason Volk
ddc70b014c ircd::json: Add templates to dedup boilerplates for building IOV's. 2018-01-24 08:07:36 -08:00
Jason Volk
ac27005cd7 ircd::json: Move these outside of value class. 2018-01-23 21:18:47 -08:00
Jason Volk
e4863aa073 ircd::json: Check stringify size on all builds; note valid assert issue. 2018-01-23 20:59:47 -08:00
Jason Volk
c0fa317475 ircd::json: Move tuple into dir; remove some cruft. 2018-01-22 01:07:38 -08:00
Jason Volk
152b3c351b ircd::json: Fix README formatting. 2018-01-22 00:54:52 -08:00
Jason Volk
90ea730a04 ircd::json: Add recursion depth checking. 2018-01-18 06:05:56 -08:00
Jason Volk
e511818e57 ircd: Add some abstract (non json::) tuple related. 2017-12-24 19:26:05 -07:00
Jason Volk
cea114d41d ircd::json: Use the defined() rather than default ctor / cleanup. 2017-12-12 14:59:40 -07:00
Jason Volk
ff76d3e061 ircd::json: Add key filtering for tuple enumerations. 2017-12-12 14:59:40 -07:00
Jason Volk
d354991c68 ircd::json: Stub a canonize() function which isn't complete yet. 2017-11-30 11:23:47 -08:00
Jason Volk
4733df3d1b ircd::json: Add more value ctor template specializations. 2017-11-30 11:23:47 -08:00
Jason Volk
d1f0667b1e ircd: Add validations of outgoing JSON. 2017-11-30 11:23:47 -08:00
Jason Volk
0e2fe01426 ircd::json: Add a validator suite. 2017-11-30 11:23:46 -08:00
Jason Volk
5e9a82af86 ircd::json: Add uint64_t ctor to value.
This ctor is actually not supposed to be used, so it gives a
pseudo-narrowing warning. Not having this ctor simply gives a compile error
which makes very little sense to the developer who is simply trying to pass
a commonly used size_t et al.
2017-11-30 11:23:45 -08:00
Jason Volk
b42dffb24c ircd::json: Improve tuple assignment typography. 2017-11-30 11:23:45 -08:00
Jason Volk
78e8a3668d ircd::json: Add missing stringify participant; minor cleanup. 2017-11-30 11:23:44 -08:00
Jason Volk
87c9ebdbc3 ircd::json: Fix assign source here. 2017-11-30 11:23:43 -08:00
Jason Volk
7f97ffdede ircd::json: Add support for parsing a vector of objects (non-standard). 2017-11-30 11:23:42 -08:00
Jason Volk
93c9935338 ircd::json: Add preliminary tuple iteration with mask of keys. 2017-11-30 11:23:41 -08:00
Jason Volk
4ae58a4f46 ircd::json: Add tuple construction from a different tuple object. 2017-11-30 11:23:41 -08:00
Jason Volk
57ae71fe4e ircd::json: Add additional commentary. 2017-11-30 11:23:40 -08:00
Jason Volk
6562efb11e ircd::json: Add 'defaults' construct to iov. 2017-11-30 11:23:40 -08:00
Jason Volk
43e35786ce ircd: Move subsystem 'index header' into subsystem directories. 2017-10-19 01:38:03 -07:00
Jason Volk
0fe97a2ed5 ircd::json: Use a non-pack enable_if template for get(tuple) like at(tuple). 2017-10-17 00:52:17 -07:00
Jason Volk
9bc7587557 ircd::json: Add a preliminary suite of sign()/verify()/hash() for tuple. 2017-10-15 21:22:52 -07:00
Jason Volk
9c875c71a6 ircd::json: Better bool related conversions etc. 2017-10-15 21:21:56 -07:00
Jason Volk
52e2525b30 ircd::json: Fix member construction related. 2017-10-15 21:21:16 -07:00
Jason Volk
a3f7a41650 ircd::json: Rename json::string to json::strung and maintain json::string as intuitive type. 2017-10-15 21:18:42 -07:00
Jason Volk
1cede9a21f ircd::json: Various fixes/cleanup; debug related. 2017-10-11 20:54:02 -07:00
Jason Volk
bc5be1c6be ircd::json: Improve constexpr-hashed-name related and uniform overloads for non-tuples. 2017-10-11 20:54:02 -07:00
Jason Volk
0ae0172a25 ircd::json: Warn when sampling size() of object and array the wrong way. 2017-10-11 20:54:02 -07:00
Jason Volk
723cd3440b ircd::json: Towards uniform defined(). 2017-10-11 20:54:02 -07:00
Jason Volk
e3963da007 ircd: Various comments added/modified. 2017-10-11 18:18:20 -07:00
Jason Volk
f32a984722 ircd::json: Add support for tuple indexing by hash; add c++11 literal hasher. 2017-10-11 18:18:18 -07:00
Jason Volk
c722ff6e71 ircd::json: Better handling and message for assignment failure to tuple. 2017-10-03 04:27:14 -07:00
Jason Volk
4090b80d60 ircd::json: Add missing serialized() participants. 2017-10-03 04:17:09 -07:00
Jason Volk
3649843950 ircd::json: Add conditional transform to tuple during serialization. 2017-10-03 04:17:08 -07:00
Jason Volk
e69cb9c2e9 ircd::json: Assume this conversion to match the byte_view<string_view> specialization. 2017-09-24 23:52:48 -07:00
Jason Volk
57bcae7a32 ircd: Update notes. 2017-09-24 18:16:42 -07:00
Jason Volk
48877a31c8 ircd::json: Add until() with two tuple arguments (for comparisons). 2017-09-24 18:16:40 -07:00
Jason Volk
44f3d2cd27 ircd::json: Recursive tuple members. 2017-09-24 18:16:39 -07:00
Jason Volk
4c50b2794f ircd::json: Various fixes/cleanup/conversions. 2017-09-24 18:16:38 -07:00
Jason Volk
38c1d2e195 ircd::json: Complete serialize/stringify for object/object::member. 2017-09-24 18:16:37 -07:00
Jason Volk
eaca7429b6 ircd::json: Simplify grammar / various cleanup. 2017-09-24 18:16:35 -07:00
Jason Volk
6a5159499f ircd::json: Use ircd::iov for json::iov. 2017-09-24 18:16:34 -07:00
Jason Volk
f8fc03e57b ircd::json: Improve value semantics and various fixes. 2017-09-24 18:16:34 -07:00
Jason Volk
54d6793f59 Update various documentation and comments. 2017-09-24 18:16:33 -07:00
Jason Volk
6f29784573 ircd: Fix json::member alias. 2017-09-24 18:16:33 -07:00
Jason Volk
8ad134c565 ircd::json: Rename builder to iov. 2017-09-24 18:16:33 -07:00
Jason Volk
e95fe7fbd9 ircd::json: Improve tuple/builder related. 2017-09-24 18:16:32 -07:00
Jason Volk
147a49a86c ircd::json: Improve stringification interface et al. 2017-09-08 07:47:07 -07:00
Jason Volk
77ba8696d9 ircd::json: Commentary / minor cleanup. 2017-09-08 03:47:53 -07:00
Jason Volk
ace878b887 ircd::json: Rename tuple member to property. 2017-09-08 03:47:53 -07:00
Jason Volk
b715b99b0c ircd::json: Upgrade index::member to json::member. 2017-09-08 03:47:53 -07:00
Jason Volk
1a59218bad ircd::json: Add builder. 2017-09-08 03:47:53 -07:00
Jason Volk
b829c5d7ba ircd::json: Extend interface with some hackses for now but this has to be revisited eventually. 2017-09-08 03:47:51 -07:00
Jason Volk
fd3bb037c7 ircd::json: Add value constructor template to attempt cast to string_view. 2017-09-08 03:47:50 -07:00
Jason Volk
81bd73f6f0 ircd::json: Add boolean constructor for literal rep. 2017-09-08 03:47:49 -07:00
Jason Volk
d9a4f06bf6 ircd: Employ namespace scope extensions from c++1z/gnu++14.
This is not a move to c++17. If the compiler happens to have support
for c++17 namespace scope resolution, they have been kind enough to
backport it to gnu++14. This limits our support for really old c++14
compilers, but that was limited anyway. GCC 6.1 and clang 3.6 tested.
2017-09-08 03:47:46 -07:00
Jason Volk
121670d1a8 ircd::json: Minor comment cleanup. 2017-09-08 03:45:09 -07:00
Jason Volk
7f92c1243c ircd::json: Refactor tuple and settle for extern member name strings. 2017-09-08 03:45:09 -07:00
Jason Volk
bc19a795d8 ircd::json: Rename parse to tuple. 2017-09-08 03:45:09 -07:00
Jason Volk
7bfaa5ec08 ircd::json: Commentary on array. 2017-08-25 15:36:29 -07:00
Jason Volk
a9f52a70b2 ircd::json: Add commentary; Add path related. 2017-08-23 15:52:15 -06:00
Jason Volk
823387da4e fixup! ircd::json: Improve object interface; remove dot traversal. 2017-08-23 15:52:15 -06:00
Jason Volk
74da170996 fixup! ircd::json: Add comment for struct object 2017-08-23 15:52:15 -06:00
Jason Volk
df87d820e1 ircd::json: Improve object interface; remove dot traversal. 2017-08-23 15:52:15 -06:00
Jason Volk
e99b22de6f ircd::json: Add comment for struct object 2017-08-23 15:52:15 -06:00
Jason Volk
4fd787d9d5 ircd::json/modules: Rename various types. 2017-08-23 15:32:28 -06:00
Jason Volk
6dbc9201f1 ircd::json: Add preliminary map and object. 2017-08-23 15:01:58 -06:00
Jason Volk
673c8ca068 ircd::json: Add val::empty() and full default initialization. 2017-04-02 20:54:35 -07:00
Jason Volk
ff84531ea3 ircd::json: Add get<string_view>() to doc. 2017-04-02 20:53:56 -07:00
Jason Volk
2ffab411df ircd::json: Various fixes to JSON subsystem. 2017-03-30 16:04:20 -07:00
Jason Volk
7ae5785431 ircd::json: Add merge constructor. 2017-03-30 16:04:18 -07:00
Jason Volk
4d2e41970b ircd::json: Add has()/get() to json::doc. 2017-03-30 16:04:18 -07:00
Jason Volk
21db4baab3 ircd: Various cleanup. 2017-03-30 16:04:18 -07:00
Jason Volk
3badb2ff90 ircd: JSON subsystem related. 2017-03-20 04:27:11 -07:00
Jason Volk
710d959a63 ircd::json: Cleanup/improve grammar; improve linear array parse (incomplete). 2017-03-17 20:33:47 -07:00
Jason Volk
7ff20d061d ircd::json: Add stronger value typing with runtime visitor switching. 2017-03-16 13:32:42 -07:00
Jason Volk
49c2a5361c ircd: Various fixes. 2017-03-13 14:43:27 -07:00
Jason Volk
b592b69b86 What is the Matrix? Control. 2017-03-10 17:51:18 -08:00