Jason Volk
5bd594d165
ircd::json::stack: Split into directory; inlines; abi simplification.
2023-02-18 21:30:11 -08:00
Jason Volk
b0217fd371
ircd::json: Eliminate double-references; optimize ABI.
...
ircd::json: Inline trivial functions; value optimize.
2023-02-12 19:19:56 -08:00
Jason Volk
762703698c
Replace various #ifdef RB_DEBUG with if constexpr for regression visibility.
2023-02-09 12:11:32 -08:00
Jason Volk
57dbd72c82
ircd::json::value: Add single-arg template ctors for value and member array.
2023-01-19 19:58:22 -08:00
Jason Volk
0725db0431
ircd::json: Add prepend/append tools for arrays.
2022-07-13 22:48:14 -07:00
Jason Volk
6cfd037ebd
ircd::json::tuple: Complete constexpr codepaths for keys selections.
2022-07-13 13:56:53 -07:00
Jason Volk
bd00907922
ircd::json: Allow literal null for array/object ::empty(); inline.
2022-06-30 14:21:50 -07:00
Jason Volk
f7e76cc9f1
ircd::json: Reuse ircd::util abstract tuple tools.
2022-06-30 14:21:50 -07:00
Jason Volk
5a4a395fc2
Add noexcept to various lambdas (gcc-11).
2022-06-29 14:42:42 -07:00
Jason Volk
dcbab1999a
ircd::json::tuple: Remove until(); refactor templates w/ if constexpr.
2022-06-28 12:37:14 -07:00
Jason Volk
3a4b5aa819
ircd::json::tuple: Add prop() convenience; add has_key(); redundant noexcept.
2022-06-28 12:37:14 -07:00
Jason Volk
f6f5809658
ircd::json::tuple: Add inline linkages on keys templates.
2022-06-28 12:37:14 -07:00
Jason Volk
bcbcfba6e8
ircd::json::property: Fix mistreatment of class template as universal reference.
2022-06-28 12:37:13 -07:00
Jason Volk
288647598c
ircd::json: Fix tuple template trait deprecated for C++20.
2022-06-19 20:14:23 -07:00
Jason Volk
ffa62d0f4c
ircd::json: Remove redundant typedef; simplify.
...
ircd:Ⓜ️ Fix ambiguous (C++20).
2022-06-19 20:14:22 -07:00
Jason Volk
401f61e564
ircd::json: Remove unit linkages for constant expression values.
2022-06-17 21:11:54 -07:00
Jason Volk
48486c2e27
ircd::json::tuple: Add missing linkages; branch expect; constness.
2022-06-17 21:11:53 -07:00
Jason Volk
19ede0f625
ircd::json: Remove unnecessary global object linkage.
2022-06-17 21:11:53 -07:00
Jason Volk
972502fd19
ircd::json: Inline trivial array::empty(); label branch expect.
2020-12-10 08:34:22 -08:00
Jason Volk
3412f3e6e3
ircd::json::tuple: Optimize at() runtime reference template approach.
2020-11-18 11:51:43 -08:00
Jason Volk
a82b325341
ircd::json: Optimize poor composition from inlining unquote().
2020-11-18 11:05:41 -08:00
Jason Volk
5958e73ff8
ircd::json: Add integrated type-checking overloads to reduce call count.
2020-11-11 22:49:39 -08:00
Jason Volk
30796e5729
ircd::buffer: Fix template name conflicts for clang-11; apply inline linkages.
...
ircd::json::tuple: Fix template name related for clang-11.
ircd::ctx: Fix template related for clang-11; inline linkages.
ircd:Ⓜ️ 🪝 Fix template related for clang-11.
2020-10-29 04:06:59 -07:00
Jason Volk
ed5875c869
ircd::json: Remerge tool header with index header; use value argument.
2020-10-27 01:17:06 -07:00
Jason Volk
1604ecd038
ircd::json::tuple: Use inline linkage for key() suite related.
2020-08-05 18:42:24 -07:00
Jason Volk
9f09eb6581
ircd::json::value: Inline trivial indirections.
2020-08-05 17:27:54 -07:00
Jason Volk
f87eefbe04
ircd::json: Inline strung template ctor.
2020-08-05 02:18:56 -07:00
Jason Volk
153354c63f
ircd::json::tuple: Indicate various closures are noexcept.
2020-08-04 18:53:18 -07:00
Jason Volk
23bfdb070d
ircd::json::tuple: Use inline linkage; prevent non-constexpr outlining; use literal argument type.
2020-08-04 18:50:55 -07:00
Jason Volk
ae65ffdcbe
ircd::json::tuple: Use constexpr conditional in indexof() template.
2020-08-04 18:50:55 -07:00
Jason Volk
4e14c9c835
ircd::json::tuple: Inline constructors.
2020-08-04 15:50:04 -07:00
Jason Volk
20d7a8ee62
ircd::json::tuple: Use structure bound range iteration rather than library.
2020-08-04 15:49:55 -07:00
Jason Volk
45f43dd46a
ircd::json: Use inline linkage; prevent PLT entries.
2020-08-02 09:13:08 -07:00
Jason Volk
117e1c0f94
ircd::json::tuple: Move exception construction out of the hotline.
2020-08-02 07:32:22 -07:00
Jason Volk
0e6a6ea0b1
ircd::json: Replace char generator w/ new vectorized string streaming. ( fixes #158 ) ( fixes #159 )
2020-07-03 16:35:28 -07:00
Jason Volk
d456a42cdd
ircd::json: Add stats items counting calls and cycles on input and output.
2020-06-24 11:00:11 -07:00
Jason Volk
31dfedbcd7
ircd::json: Add suite for type optimized type query; refactor grammars.
2020-05-24 19:03:00 -07:00
Jason Volk
54a72532b6
ircd::json: Eliminate output validation for release builds.
2020-05-22 16:37:05 -07:00
Jason Volk
c73636f950
ircd::json: Add output validation to base stringify() template.
2020-05-22 16:37:05 -07:00
Jason Volk
648d6e42b4
ircd::json: Inline vector::const_iterator related.
2020-05-18 18:12:34 -07:00
Jason Volk
cbce88e34e
ircd::json::tuple: Fix type=NUMBER serial=true tuple assignment.
2020-04-22 05:34:12 -07:00
Jason Volk
79a4394626
ircd::json::stack: Simplify checkpoint interface controls.
2020-04-14 15:31:41 -07:00
Jason Volk
cb41660c94
ircd: Applications of loopless copy overload for single character.
2020-04-13 23:58:33 -07:00
Jason Volk
c1692de5ed
ircd::json: Abstract the source json::object out of m::event for all tuples by default.
2020-04-05 16:15:23 -07:00
Jason Volk
44dce34197
ircd::json::tuple: Avoids PLT entries for complex templates in modules.
2020-04-03 12:29:41 -07:00
Jason Volk
a7d9476a05
ircd::json: Split array::const_iterator from array header; inline comparison suite.
2020-04-03 11:02:49 -07:00
Jason Volk
c4d041d1ae
ircd::json: Inline object::const_iterator comparison suite.
...
ircd::json: Split object::const_iterator from object header.
ircd::json: Split object::member related from object header.
2020-04-03 11:02:49 -07:00
Jason Volk
17628cbc44
ircd::json: Prevent aggressive unroll into double-jump jam for keys counting.
2020-04-03 08:18:51 -07:00
Jason Volk
5bd8178c94
ircd::json: Add conditional constexpr assignment check during tuple iteration.
2020-03-22 18:18:50 -07:00
Jason Volk
d87616e2fb
ircd::json::strung: Remove duplicate adl interface.
2020-03-19 16:25:45 -07:00