Esempio n. 1
0
        private void writeElementPrefix(ushort type, Common.StringView name)
        {
            Debug.Assert(m_stack.Count);

            checkArrayPreamble(new ushort(type));
            Level level = m_stack[m_stack.Count - 1];

            if (level.state != State.Array)
            {
                if (!name.isEmpty())
                {
                    auto s = stream();
                    GlobalMembers.writeElementName(s, new Common.StringView(name));
                    write(s, type, 1);
                }
                ++level.count;
            }
        }
Esempio n. 2
0
        private void checkArrayPreamble(ushort type)
        {
            if (m_stack.Count == 0)
            {
                return;
            }

            Level level = m_stack[m_stack.Count - 1];

            if (level.state == State.ArrayPrefix)
            {
                auto s = stream();
                GlobalMembers.writeElementName(s, level.name);
                char c = GlobalMembers.BIN_KV_SERIALIZE_FLAG_ARRAY | type;
                write(s, c, 1);
                GlobalMembers.writeArraySize(s, new ulong(level.count));
                level.state = State.Array;
            }
        }