// File: /workspace/github_cpp_makefile_star2_O3/oknenavin[P]cxon/test/../src/cxon/lang/common/cio/class.hxx
// Function: std::enable_if<!is_bare_class<test::fixture>::value, bool>::type cxon::cio::cls::imp::read_fields_<cxon::JSON<cxon::cio::key::simple_traits<cxon::cxcf::format_traits>>, test::fixture, cxon::cio::cls::field<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> test::fixture::*>, cxon::cio::cls::field<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>> test::fixture::*>, cxon::cio::cls::field<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, test::fix, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, test::fix>>> test::fixture::*>, char const*, cxon::context<cxon::JSON<cxon::cxcf::format_traits>>>(test::fixture&, std::tuple<cxon::cio::cls::field<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> test::fixture::*>, cxon::cio::cls::field<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>> test::fixture::*>, cxon::cio::cls::field<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, test::fix, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, test::fix>>> test::fixture::*>> const&, char const*&, char const*, cxon::context<cxon::JSON<cxon::cxcf::format_traits>>&)
inline auto read_fields_(T& t, const fields<Fs...>& fs, II& i, II e, Cx& cx)
                -> enable_if_t<!is_bare_class<T>::value, bool>
            {
                if (!consume<X>(X::map::beg, i, e, cx))
                    return false;
                int st[sizeof...(Fs)];
                    CXON_IF_CONSTEXPR (X::assume_unique_object_keys)
                        std::fill_n(st, sizeof...(Fs), 0);
                for (char id[ids_len_max::constant<napa_type<Cx>>(64)]; ; ) {
                    if (!consume<X>(i, e, cx))
                        return false;
                    if (peek(i, e) == X::map::end)
                        return ++i, true;
                    II const o = i;
                        if (!read_map_key<X>(id, i, e, cx))
                            return rewind(i, o), false;
                        if (!read_field_<X>(t, id, fs, st, i, e, cx))
                            return cx && (rewind(i, o), cx/X::read_error::unexpected);
                        if (cnt::consume_sep<X, typename X::map>(i, e, cx))
                            continue;
                    return consume<X>(X::map::end, i, e, cx);
                }
                return true;
            }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x78, %rsp
movq %r8, %rbx
movq %rcx, %r15
movq %rdx, %r14
movq %rsi, 0x18(%rsp)
movq %rdi, 0x10(%rsp)
movq (%rdx), %rdx
xorl %ecx, %ecx
leaq 0x39d3c(%rip), %r12     # 0x45080
cmpq %r15, %rdx
je 0xb35b
movzbl (%rdx), %eax
testb $0x8, (%rax,%r12)
je 0xb35b
incq %rdx
movq %rdx, (%r14)
jmp 0xb344
cmpq %r15, %rdx
je 0xb3f2
cmpb $0x2f, (%rdx)
jne 0xb3f2
leaq 0x1(%rdx), %rax
movq %rax, (%r14)
cmpq %r15, %rax
je 0xb3f7
movzbl (%rax), %esi
cmpl $0x2a, %esi
je 0xb3a5
cmpl $0x2f, %esi
jne 0xb3f7
addq $0x2, %rdx
movq %rdx, %rax
movq %rax, (%r14)
movb $0x1, %cl
cmpq %r15, %rax
je 0xb3de
cmpb $0xa, (%rax)
movq %rax, %rdx
leaq 0x1(%rax), %rax
jne 0xb38d
jmp 0xb344
addq $0x2, %rdx
movq %rdx, (%r14)
movb $0x1, %cl
cmpq %r15, %rdx
je 0xb344
cmpb $0x2a, (%rdx)
setne %sil
leaq 0x1(%rdx), %rax
movq %rax, (%r14)
cmpq %r15, %rax
sete %dil
orb %sil, %dil
cmpb $0x1, %dil
je 0xb3d6
cmpb $0x2f, (%rax)
je 0xb3e6
movq %rax, %rdx
cmpq %r15, %rax
jne 0xb3b3
movq %rax, %rdx
jmp 0xb344
addq $0x2, %rdx
movq %rdx, (%r14)
jmp 0xb344
movq %rdx, %rax
jmp 0xb400
testb $0x1, %cl
je 0xb726
cmpq %r15, %rax
je 0xb726
cmpb $0x7b, (%rax)
jne 0xb726
incq %rax
movq %rax, (%r14)
leaq 0x20(%rsp), %rcx
movl $0x0, 0x8(%rcx)
movq $0x0, (%rcx)
xorl %ecx, %ecx
leaq 0x30(%rsp), %rbp
cmpq %r15, %rax
je 0xb449
movzbl (%rax), %edx
testb $0x8, (%rdx,%r12)
je 0xb449
incq %rax
movq %rax, (%r14)
jmp 0xb432
cmpq %r15, %rax
je 0xb495
cmpb $0x2f, (%rax)
jne 0xb495
leaq 0x1(%rax), %r13
movq %r13, (%r14)
cmpq %r15, %r13
je 0xb49a
movzbl (%r13), %edx
cmpl $0x2a, %edx
je 0xb5d1
cmpl $0x2f, %edx
jne 0xb49a
addq $0x2, %rax
movq %rax, %rdx
movq %rdx, (%r14)
movb $0x1, %cl
cmpq %r15, %rdx
je 0xb60e
cmpb $0xa, (%rdx)
movq %rdx, %rax
leaq 0x1(%rdx), %rdx
jne 0xb479
jmp 0xb432
movq %rax, %r13
jmp 0xb4a3
testb $0x1, %cl
je 0xb726
cmpq %r15, %r13
je 0xb4b3
cmpb $0x7d, (%r13)
je 0xb63b
movq %rbp, %rdi
movq %r14, %rsi
movq %r15, %rdx
movq %rbx, %rcx
callq 0x9fee
testb %al, %al
je 0xb622
movq %rbx, (%rsp)
movq 0x10(%rsp), %rdi
movq %rbp, %rsi
movq 0x18(%rsp), %rdx
leaq 0x20(%rsp), %rcx
movq %r14, %r8
movq %r15, %r9
callq 0xb746
testb %al, %al
je 0xb62a
movq (%r14), %rdx
xorl %ecx, %ecx
cmpq %r15, %rdx
je 0xb511
movzbl (%rdx), %eax
testb $0x8, (%rax,%r12)
je 0xb511
incq %rdx
movq %rdx, (%r14)
jmp 0xb4fa
cmpq %r15, %rdx
je 0xb5a8
cmpb $0x2f, (%rdx)
jne 0xb5a8
leaq 0x1(%rdx), %rax
movq %rax, (%r14)
cmpq %r15, %rax
je 0xb5ad
movzbl (%rax), %esi
cmpl $0x2a, %esi
je 0xb55b
cmpl $0x2f, %esi
jne 0xb5ad
addq $0x2, %rdx
movq %rdx, %rax
movq %rax, (%r14)
movb $0x1, %cl
cmpq %r15, %rax
je 0xb594
cmpb $0xa, (%rax)
movq %rax, %rdx
leaq 0x1(%rax), %rax
jne 0xb543
jmp 0xb4fa
addq $0x2, %rdx
movq %rdx, (%r14)
movb $0x1, %cl
cmpq %r15, %rdx
je 0xb4fa
cmpb $0x2a, (%rdx)
setne %sil
leaq 0x1(%rdx), %rax
movq %rax, (%r14)
cmpq %r15, %rax
sete %dil
orb %sil, %dil
cmpb $0x1, %dil
je 0xb58c
cmpb $0x2f, (%rax)
je 0xb59c
movq %rax, %rdx
cmpq %r15, %rax
jne 0xb569
movq %rax, %rdx
jmp 0xb4fa
addq $0x2, %rdx
movq %rdx, (%r14)
jmp 0xb4fa
movq %rdx, %rax
jmp 0xb5b6
testb $0x1, %cl
je 0xb646
xorl %ecx, %ecx
cmpq %r15, %rax
je 0xb432
xorl %ecx, %ecx
cmpb $0x7d, (%rax)
jne 0xb432
jmp 0xb658
addq $0x2, %rax
movq %rax, (%r14)
movb $0x1, %cl
cmpq %r15, %rax
je 0xb432
cmpb $0x2a, (%rax)
setne %sil
leaq 0x1(%rax), %rdx
movq %rdx, (%r14)
cmpq %r15, %rdx
sete %dil
orb %sil, %dil
cmpb $0x1, %dil
je 0xb606
cmpb $0x2f, (%rdx)
je 0xb616
movq %rdx, %rax
cmpq %r15, %rdx
jne 0xb5e3
movq %rdx, %rax
jmp 0xb432
addq $0x2, %rax
movq %rax, (%r14)
jmp 0xb432
movq %r13, (%r14)
jmp 0xb735
cmpl $0x0, (%rbx)
jne 0xb735
movq %r13, (%r14)
jmp 0xb726
incq %r13
movq %r13, (%r14)
jmp 0xb722
callq 0xdf1e
movl $0x1, (%rbx)
movq %rax, 0x8(%rbx)
movq (%r14), %rax
xorl %ecx, %ecx
cmpq %r15, %rax
je 0xb671
movzbl (%rax), %edx
testb $0x8, (%rdx,%r12)
je 0xb671
incq %rax
movq %rax, (%r14)
jmp 0xb65a
cmpq %r15, %rax
je 0xb708
cmpb $0x2f, (%rax)
jne 0xb708
leaq 0x1(%rax), %rdx
movq %rdx, (%r14)
cmpq %r15, %rdx
je 0xb70d
movzbl (%rdx), %esi
cmpl $0x2a, %esi
je 0xb6bb
cmpl $0x2f, %esi
jne 0xb70d
addq $0x2, %rax
movq %rax, %rdx
movq %rdx, (%r14)
movb $0x1, %cl
cmpq %r15, %rdx
je 0xb6f4
cmpb $0xa, (%rdx)
movq %rdx, %rax
leaq 0x1(%rdx), %rdx
jne 0xb6a3
jmp 0xb65a
addq $0x2, %rax
movq %rax, (%r14)
movb $0x1, %cl
cmpq %r15, %rax
je 0xb65a
cmpb $0x2a, (%rax)
setne %sil
leaq 0x1(%rax), %rdx
movq %rdx, (%r14)
cmpq %r15, %rdx
sete %dil
orb %sil, %dil
cmpb $0x1, %dil
je 0xb6ec
cmpb $0x2f, (%rdx)
je 0xb6fc
movq %rdx, %rax
cmpq %r15, %rdx
jne 0xb6c9
movq %rdx, %rax
jmp 0xb65a
addq $0x2, %rax
movq %rax, (%r14)
jmp 0xb65a
movq %rax, %rdx
jmp 0xb712
testb $0x1, %cl
je 0xb726
cmpq %r15, %rdx
je 0xb726
cmpb $0x7d, (%rdx)
jne 0xb726
incq %rdx
movq %rdx, (%r14)
movb $0x1, %al
jmp 0xb737
callq 0xdf1e
movl $0x1, (%rbx)
movq %rax, 0x8(%rbx)
xorl %eax, %eax
addq $0x78, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq