Jason Volk
0d78a07f55
ircd::json: Minor reorg / cleanup; improve some thrown errors.
2019-01-22 11:05:30 -08:00
Jason Volk
efc4831497
ircd::json: Improve conformity of various limitation constants.
2019-01-21 14:38:34 -08:00
Jason Volk
379d5d5914
ircd::json::tuple: Use a forward here instead.
2019-01-17 14:38:18 -08:00
Jason Volk
c6be968111
ircd::json::tuple: Various keys suite cleanup / simplify.
2019-01-17 14:38:18 -08:00
Jason Volk
a6a740bbf6
ircd::json::tuple: Add selection copy constructor.
2019-01-16 18:35:30 -08:00
Jason Volk
47cf369739
ircd::json::tuple: Restrict these ctors.
2019-01-16 17:22:09 -08:00
Jason Volk
4dc1e2d7fc
ircd::json: Add tuple ctor from json::object with keys selection.
2019-01-16 16:38:14 -08:00
Jason Volk
0cb79728f9
ircd::json::tuple: Add membership test for keys selection.
2019-01-16 16:38:14 -08:00
Jason Volk
cbf456a388
ircd: Rename and refactor ircd::assertion interface into ircd::panic.
2019-01-13 16:37:31 -08:00
Jason Volk
3fae228c1a
ircd::json: Simplify json::object interface: eliminate path traversing overloads.
2019-01-12 16:47:48 -08:00
Jason Volk
f6e1311e21
ircd::json: Split path related from util header.
2019-01-12 11:51:15 -08:00
Jason Volk
1198f7bc56
ircd::json::stack: Add object::append() convenience.
2019-01-10 16:58:44 -08:00
Jason Volk
f9ec33916c
ircd::json::stack: Add internal convenience member instance in the object and array class.
2019-01-08 15:53:41 -08:00
Jason Volk
ce999b916a
ircd::json::stack: Add chase device; add top() conveniences.
2019-01-08 11:06:00 -08:00
Jason Volk
cf6fc070a7
ircd::json::stack: Keep state for member append; null member if no append.
2019-01-07 14:00:24 -08:00
Jason Volk
523577c652
ircd::json: Add doc \brief for json::buffer.
2019-01-02 10:48:30 -08:00
Jason Volk
aa166d0c5d
ircd::json::stack: Add noexcept for non-throwers called during stack unwinds.
2018-12-24 12:06:57 -08:00
Jason Volk
eead379f36
ircd::json: Minor cleanup.
2018-11-29 13:08:37 -08:00
Jason Volk
6576406123
ircd::json: Various tuple cleanup; split tuple transform suites into files.
2018-11-14 00:58:55 -08:00
Jason Volk
7c0b4dcbe8
ircd::json: Remove cruft.
2018-11-06 19:48:06 -08:00
Jason Volk
2914487aad
ircd::json: Add more explicit integer ctors to value; minor reorg ctors.
2018-11-04 18:00:24 -08:00
Jason Volk
fb6bb04207
ircd: Various fixes for resolution of constexpr string_view & hash related; cleanup.
2018-09-16 21:28:46 -07:00
Jason Volk
e1b9d69c21
ircd::json: Fix exporting path operator<< to ircd:: in include stack here.
2018-09-13 05:02:24 -07:00
Jason Volk
8593d09c80
ircd::json: Enforce string type for member key on constructions.
2018-09-05 23:23:26 -07:00
Jason Volk
cffe958d2b
ircd::json: Add splice operations over json::strung.
2018-09-05 19:37:59 -07:00
Jason Volk
c189feb87b
ircd::json: Assignment semantic for json::strung.
2018-09-05 19:37:59 -07:00
Jason Volk
d3493e5901
ircd::json: Split strung into file.
2018-09-05 18:45:25 -07:00
Jason Volk
0d688b386b
ircd::json: Perform unquote() in json::string ctor as described...
2018-06-12 01:00:15 -07:00
Jason Volk
5146ddf67e
ircd::json: Reduce iov interface; make conditional nodes evaluate conditionally.
2018-06-05 11:16:52 -07:00
Jason Volk
1a12b7331d
ircd::json: Add conditioned-closure iov::add_if.
2018-06-04 23:17:29 -07:00
Jason Volk
b69848b620
ircd::json: Add non-const iov::at(); minor cleanup.
2018-05-25 17:45:49 -07:00
Jason Volk
fb1c7236ac
ircd::json: Default selection to all keys.
2018-05-20 01:48:47 -07:00
Jason Volk
208a0198c0
ircd::json: Add specific extern undefined number.
2018-05-19 22:55:03 -07:00
Jason Volk
d30aa971e5
ircd::json: Additional initializer list convenience constructors for keys.
2018-05-19 22:55:02 -07:00
Jason Volk
2991144b38
ircd::json: Use vector_view for keys selectors.
2018-05-19 19:17:07 -07:00
Jason Volk
64170b6fef
ircd::json: Add tuple keys vector_view convenience conversion.
2018-05-19 18:52:50 -07:00
Jason Volk
52de335c8f
ircd::json: Split tuple key() suite.
2018-05-19 18:49:08 -07:00
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