#ifndef MACRODOWN_BLOCK_H
#define MACRODOWN_BLOCK_H
#include <string>
#include <vector>
#include <memory>
namespace macrodown
{
enum class BlockType
{
Document,
Quote,
List,
ListItem,
FencedCode,
IndentedCode,
HtmlBlock,
Paragraph,
Heading,
ThematicBreak
};
struct Block
{
BlockType type;
std::vector<std::unique_ptr<Block>> children; // For container blocks
std::string literal_content; // For leaf blocks
int level = 0; // For headings
bool open = true;
Block(BlockType t) : type(t) {}
};
} // namespace macrodown
#endif // MACRODOWN_BLOCK_H