{# The children of the container node `node` (a pointer expression) of the document `doc` (a document_data pointer
expression). A node is only an index into the source text: strings are read from `doc`, so the strings of the
direct children are readable here, but the children of a nested container are shown as nodes (see the node
visualizer below). Containers with edits (flag 8, "moved") are not expanded. The node kinds are the numbers of
node_kind: 1 object, 2 array, 3 string; the float token is shown only by the node visualizer. #}
{% macro children(node, doc=none) %}
obj ? 2 * n : n
{% if doc %}
- {{ doc }}->base._Elems[p->flags & 3] + p->off,[p->len]s8
{% else %}
- *p
{% endif %}
p = p + 1
{% if doc %}
- {{ doc }}->base._Elems[p->flags & 3] + p->off,[p->len]s8
{% endif %}
- *p
{% if doc %}
- {{ doc }}->base._Elems[p->flags & 3] + p->off,[p->len]s8
{% endif %}
- *p
p = p + (((int)p->kind == 1 || (int)p->kind == 2) ? p->next : 1)
i = i + 1
{%- endmacro %}
{% for ns in namespaces %}
null
{*(m_data.m_value.object)}
{*(m_data.m_value.array)}
{*(m_data.m_value.string)}
{m_data.m_value.boolean}
{m_data.m_value.number_integer}
{m_data.m_value.number_unsigned}
{m_data.m_value.number_float}
discarded
*(m_data.m_value.object),view(simple)
*(m_data.m_value.array),view(simple)
{second}
second
{% for default_base in ['json_default_base', 'detail::json_default_base'] %}
null
{*(m_data.m_value.object)}
{*(m_data.m_value.array)}
{*(m_data.m_value.string)}
{m_data.m_value.boolean}
{m_data.m_value.number_integer}
{m_data.m_value.number_unsigned}
{m_data.m_value.number_float}
discarded
*(m_data.m_value.object),view(simple)
*(m_data.m_value.array),view(simple)
{% endfor %}
null
object, size={len}
array, size={len}
string, length={len}
{(flags & 4) != 0}
{(__int64)((unsigned __int64)len | ((unsigned __int64)next << 32))}
{(unsigned __int64)len | ((unsigned __int64)next << 32)}
float, length={len}
link
{{ children('this') }}
discarded
{m_doc->base._Elems[m_node->flags & 3] + m_node->off,[m_node->len]s8}
{m_doc->base._Elems[m_node->flags & 3] + m_node->off,[m_node->len]s8b}
{*m_node}
{{ children('m_node', 'm_doc') }}
discarded
{*m_data._Mypair._Myval2->nodes}
- m_data._Mypair._Myval2->src,[m_data._Mypair._Myval2->size]s8b
- m_data._Mypair._Myval2->node_count
{{ children('m_data._Mypair._Myval2->nodes', 'm_data._Mypair._Myval2') }}
{% endfor %}