Files
bed/include/vase/iterators/chunk.h
T
syedm 8c61f186cf Major fixes:
- ChunkIterator is now bidirectional
- LineIterator is now also bidirectional
- Undo/redo history operations
- Replace operation
- Range based api functions
- And more minor bug fixes
2026-08-03 20:26:02 +01:00

28 lines
511 B
C++

#pragma once
#include "../shard.h"
#include "pch.h"
enum struct Direction : uint8_t {
Forward,
Backward
};
struct ChunkIterator {
Direction dir;
Shard *root = nullptr;
std::vector<Shard *> stack;
Petal *petal = nullptr;
uint32_t petal_offset = 0;
uint32_t global_offset = 0;
ChunkIterator(Shard *r, Direction dir);
~ChunkIterator();
void seek_offset(uint32_t offset);
void seek_line(uint32_t offset);
bool next(const char **data, uint32_t *out_len);
uint32_t byte_offset();
};