Example #1
0
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);
}
Example #2
0
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);
}