Skip to content

Commit 20e53e5

Browse files
authored
Mustache improvements and moving get_member out of detail namespace (#1492)
* Mustache improvements * Moving get_member from glz::detail -> glz:: * more cleaning * Update mustache.md
1 parent d91bcb2 commit 20e53e5

File tree

12 files changed

+204
-158
lines changed

12 files changed

+204
-158
lines changed

docs/MUSTACHE/mustache.md

+3-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33
> [!WARNING]
44
>
5-
> Glaze Mustache support is still limited and somewhat experimental. The API may not be as stable as other formats in Glaze.
5+
> Glaze Mustache support is still limited and experimental. The API may not be as stable as other formats in Glaze.
6+
>
7+
> Also, html characters are currently not escaped to avoid injection attacks.
68
79
Glaze supports basic mustache support for serializing structs.
810

include/glaze/beve/write.hpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -881,7 +881,7 @@ namespace glz
881881
static constexpr decltype(auto) element = get<index>(member_it->second);
882882

883883
detail::write<BEVE>::no_header<Opts>(key, ctx, b, ix);
884-
write_partial<BEVE>::op<sub_partial, Opts>(glz::detail::get_member(value, element), ctx, b, ix);
884+
write_partial<BEVE>::op<sub_partial, Opts>(glz::get_member(value, element), ctx, b, ix);
885885
});
886886
}
887887
else if constexpr (writable_map_t<T>) {

include/glaze/compare/approx.hpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ namespace glz
1818

1919
bool equal = true;
2020
for_each_short_circuit<N>([&](auto I) {
21-
auto& l = detail::get_member(lhs, get<I>(reflect<T>::values));
22-
auto& r = detail::get_member(rhs, get<I>(reflect<T>::values));
21+
auto& l = get_member(lhs, get<I>(reflect<T>::values));
22+
auto& r = get_member(rhs, get<I>(reflect<T>::values));
2323
using V = std::decay_t<decltype(l)>;
2424
if constexpr (std::floating_point<V> && requires { meta<std::decay_t<T>>::compare_epsilon; }) {
2525
if (std::abs(l - r) >= meta<std::decay_t<T>>::compare_epsilon) {

include/glaze/compare/compare.hpp

+10-10
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ namespace glz
2323

2424
bool equal = true;
2525
for_each_short_circuit<N>([&](auto I) {
26-
auto& l = detail::get_member(lhs, get<I>(reflect<T>::values));
27-
auto& r = detail::get_member(rhs, get<I>(reflect<T>::values));
26+
auto& l = get_member(lhs, get<I>(reflect<T>::values));
27+
auto& r = get_member(rhs, get<I>(reflect<T>::values));
2828
if (!std::equal_to{}(l, r)) {
2929
equal = false;
3030
return true; // exit
@@ -46,8 +46,8 @@ namespace glz
4646

4747
bool less_than = true;
4848
for_each_short_circuit<N>([&](auto I) {
49-
auto& l = detail::get_member(lhs, get<I>(reflect<T>::values));
50-
auto& r = detail::get_member(rhs, get<I>(reflect<T>::values));
49+
auto& l = get_member(lhs, get<I>(reflect<T>::values));
50+
auto& r = get_member(rhs, get<I>(reflect<T>::values));
5151
if (!std::less{}(l, r)) {
5252
less_than = false;
5353
return true; // exit
@@ -68,8 +68,8 @@ namespace glz
6868

6969
bool less_than = true;
7070
for_each_short_circuit<N>([&](auto I) {
71-
auto& l = detail::get_member(lhs, get<I>(reflect<T>::values));
72-
auto& r = detail::get_member(rhs, get<I>(reflect<T>::values));
71+
auto& l = get_member(lhs, get<I>(reflect<T>::values));
72+
auto& r = get_member(rhs, get<I>(reflect<T>::values));
7373
if (!std::less_equal{}(l, r)) {
7474
less_than = false;
7575
return true; // exit
@@ -90,8 +90,8 @@ namespace glz
9090

9191
bool greater_than = true;
9292
for_each_short_circuit<N>([&](auto I) {
93-
auto& l = detail::get_member(lhs, get<I>(reflect<T>::values));
94-
auto& r = detail::get_member(rhs, get<I>(reflect<T>::values));
93+
auto& l = get_member(lhs, get<I>(reflect<T>::values));
94+
auto& r = get_member(rhs, get<I>(reflect<T>::values));
9595
if (!std::greater{}(l, r)) {
9696
greater_than = false;
9797
return true; // exit
@@ -112,8 +112,8 @@ namespace glz
112112

113113
bool greater_than = true;
114114
for_each_short_circuit<N>([&](auto I) {
115-
auto& l = detail::get_member(lhs, get<I>(reflect<T>::values));
116-
auto& r = detail::get_member(rhs, get<I>(reflect<T>::values));
115+
auto& l = get_member(lhs, get<I>(reflect<T>::values));
116+
auto& r = get_member(rhs, get<I>(reflect<T>::values));
117117
if (!std::greater_equal{}(l, r)) {
118118
greater_than = false;
119119
return true; // exit

0 commit comments

Comments
 (0)