// 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::config>::value, bool>::type cxon::cio::cls::imp::read_fields_<cxon::JSON<cxon::cio::key::simple_traits<cxon::cxcf::format_traits>>, test::config, cxon::cio::cls::field<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, test::fixture, 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::fixture>>> test::config::*>, cxon::cio::cls::field<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, test::fixture, 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::fixture>>> test::config::*>, char const*, cxon::context<cxon::JSON<cxon::cxcf::format_traits>>>(test::config&, std::tuple<cxon::cio::cls::field<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, test::fixture, 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::fixture>>> test::config::*>, cxon::cio::cls::field<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, test::fixture, 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::fixture>>> test::config::*>> 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>(i, e, cx)) return false;
                    if (i == e) return true;
                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)]; i != e && *i; ) {
                    II const o = i;
                        if (!read_map_key<X>(id, i, e, cx))
                            return false;
                        if (!read_field_<X>(t, id, fs, st, i, e, cx))
                            return cx && (rewind(i, o), cx/X::read_error::unexpected);
                        if (!consume<X>(i, e, cx))
                            return false;
                }
                return true;
            }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x78, %rsp
movq %r8, %rbp
movq %rcx, %r15
movq %rdx, %r14
movq %rsi, 0x20(%rsp)
movq %rdi, 0x18(%rsp)
movq (%rdx), %rcx
xorl %eax, %eax
leaq 0x3b2f1(%rip), %r13     # 0x45080
cmpq %r15, %rcx
je 0x9da6
movzbl (%rcx), %edx
testb $0x8, (%rdx,%r13)
je 0x9da6
incq %rcx
movq %rcx, (%r14)
jmp 0x9d8f
cmpq %r15, %rcx
je 0x9e43
cmpb $0x2f, (%rcx)
jne 0x9e43
leaq 0x1(%rcx), %r12
movq %r12, (%r14)
cmpq %r15, %r12
je 0x9e48
movzbl (%r12), %edx
cmpl $0x2a, %edx
je 0x9df6
cmpl $0x2f, %edx
jne 0x9e48
addq $0x2, %rcx
movq %rcx, %rdx
movq %rdx, (%r14)
movb $0x1, %al
cmpq %r15, %rdx
je 0x9e2f
cmpb $0xa, (%rdx)
movq %rdx, %rcx
leaq 0x1(%rdx), %rdx
jne 0x9dde
jmp 0x9d8f
addq $0x2, %rcx
movq %rcx, (%r14)
movb $0x1, %al
cmpq %r15, %rcx
je 0x9d8f
cmpb $0x2a, (%rcx)
setne %sil
leaq 0x1(%rcx), %rdx
movq %rdx, (%r14)
cmpq %r15, %rdx
sete %dil
orb %sil, %dil
cmpb $0x1, %dil
je 0x9e27
cmpb $0x2f, (%rdx)
je 0x9e37
movq %rdx, %rcx
cmpq %r15, %rdx
jne 0x9e04
movq %rdx, %rcx
jmp 0x9d8f
addq $0x2, %rcx
movq %rcx, (%r14)
jmp 0x9d8f
movq %rcx, %r12
jmp 0x9e50
testb $0x1, %al
je 0x9f9e
cmpq %r15, %r12
je 0x9f9a
leaq 0x28(%rsp), %rax
movq $0x0, (%rax)
leaq 0x30(%rsp), %rbx
movq %rbp, 0x10(%rsp)
movb $0x1, %al
movl %eax, 0xc(%rsp)
cmpb $0x0, (%r12)
je 0x9fdb
movq %rbx, %rdi
movq %r14, %rsi
movq %r15, %rdx
movq %rbp, %rcx
callq 0x9fee
testb %al, %al
je 0x9fd3
movq %rbp, (%rsp)
movq 0x18(%rsp), %rdi
movq %rbx, %rbp
movq %rbx, %rsi
movq 0x20(%rsp), %rdx
leaq 0x28(%rsp), %rcx
movq %r14, %r8
movq %r15, %r9
callq 0xa378
testb %al, %al
je 0x9fb2
movq (%r14), %rcx
xorl %eax, %eax
cmpq %r15, %rcx
je 0x9ee1
movzbl (%rcx), %edx
testb $0x8, (%rdx,%r13)
je 0x9ee1
incq %rcx
movq %rcx, (%r14)
jmp 0x9eca
cmpq %r15, %rcx
je 0x9f7e
cmpb $0x2f, (%rcx)
jne 0x9f7e
leaq 0x1(%rcx), %r12
movq %r12, (%r14)
cmpq %r15, %r12
je 0x9f83
movzbl (%r12), %edx
cmpl $0x2a, %edx
je 0x9f31
cmpl $0x2f, %edx
jne 0x9f83
addq $0x2, %rcx
movq %rcx, %rdx
movq %rdx, (%r14)
movb $0x1, %al
cmpq %r15, %rdx
je 0x9f6a
cmpb $0xa, (%rdx)
movq %rdx, %rcx
leaq 0x1(%rdx), %rdx
jne 0x9f19
jmp 0x9eca
addq $0x2, %rcx
movq %rcx, (%r14)
movb $0x1, %al
cmpq %r15, %rcx
je 0x9eca
cmpb $0x2a, (%rcx)
setne %sil
leaq 0x1(%rcx), %rdx
movq %rdx, (%r14)
cmpq %r15, %rdx
sete %dil
orb %sil, %dil
cmpb $0x1, %dil
je 0x9f62
cmpb $0x2f, (%rdx)
je 0x9f72
movq %rdx, %rcx
cmpq %r15, %rdx
jne 0x9f3f
movq %rdx, %rcx
jmp 0x9eca
addq $0x2, %rcx
movq %rcx, (%r14)
jmp 0x9eca
movq %rcx, %r12
jmp 0x9f87
testb $0x1, %al
je 0x9fbf
cmpq %r15, %r12
movq %rbp, %rbx
movq 0x10(%rsp), %rbp
jne 0x9e6f
jmp 0x9fdb
movb $0x1, %al
jmp 0x9fdf
callq 0xdf1e
movl $0x1, (%rbp)
movq %rax, 0x8(%rbp)
xorl %eax, %eax
jmp 0x9fdf
movq 0x10(%rsp), %rax
cmpl $0x0, (%rax)
jne 0x9fd3
movq %r12, (%r14)
callq 0xdf1e
movq 0x10(%rsp), %rcx
movl $0x1, (%rcx)
movq %rax, 0x8(%rcx)
movl $0x0, 0xc(%rsp)
movl 0xc(%rsp), %eax
addq $0x78, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq