#pragma once #include #include "record.hpp" #include #include #include class FileReader { private: std::ifstream stream_; std::vector buffer_; size_t current_pos_; size_t valid_items_; size_t total_reads_; void refill_buffer(); public: FileReader(const std::string& filename, size_t buffer_size = 8); std::optional read(); size_t read_chunk(std::span& chunk); size_t total_reads() const; };