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