void Namespace::Write(BinaryWriter &w) const { Node::Write(w); w.WriteID(m_Parent); w.WriteAs<uint32_t>(m_Functions.size()); for (auto &kvp : m_Functions) { w.WriteAs<uint32_t>(kvp.second.size()); for (auto &kvp : kvp.second) kvp.second->Write(w); } w.WriteAs<uint32_t>(m_Children.size()); for (auto &kvp : m_Children) kvp.second->Write(w); w.WriteAs<uint32_t>(m_Types.size()); for (auto &kvp : m_Types) kvp.second->Write(w); w.WriteAs<uint32_t>(m_Variables.size()); for (auto &kvp : m_Variables) kvp.second->Write(w); w.WriteAs<uint32_t>(m_EnumConstants.size()); for (auto &kvp : m_EnumConstants) kvp.second->Write(w); }
void Type::Write(BinaryWriter &w) const { Node::Write(w); w.WriteID(m_Parent); w.WriteAs<uint8_t>(m_Primitive); w.WriteID(m_Class); w.Write(m_NumDereferences); w.Write(m_IsReference); w.Write(m_IsConst); w.WriteID(m_ParentType); w.WriteAs<uint32_t>(m_TemplateArgs.size()); for (auto &t : m_TemplateArgs) t->Write(w); w.Write(m_ArraySize); }