void EmitterState::StartedGroup(GroupType::value type) { StartedNode(); const int lastGroupIndent = (m_groups.empty() ? 0 : m_groups.back()->indent); m_curIndent += lastGroupIndent; // TODO: Create move constructors for settings types to simplify transfer std::unique_ptr<Group> pGroup(new Group(type)); // transfer settings (which last until this group is done) // // NB: if pGroup->modifiedSettings == m_modifiedSettings, // m_modifiedSettings is not changed! pGroup->modifiedSettings = std::move(m_modifiedSettings); // set up group if (GetFlowType(type) == Block) { pGroup->flowType = FlowType::Block; } else { pGroup->flowType = FlowType::Flow; } pGroup->indent = GetIndent(); m_groups.push_back(std::move(pGroup)); }
void EmitterState::StartedScalar() { StartedNode(); ClearModifiedSettings(); }