| 584 | } |
| 585 | |
| 586 | size_t Read(void *buf, size_t max_size) |
| 587 | { |
| 588 | std::span<char> dest(reinterpret_cast<char *>(buf), max_size); |
| 589 | |
| 590 | auto view = this->consumer.Read(max_size); |
| 591 | std::copy(view.data(), view.data() + view.size(), dest.data()); |
| 592 | size_t result_size = view.size(); |
| 593 | |
| 594 | if (result_size < max_size) { |
| 595 | assert(!this->consumer.AnyBytesLeft()); |
| 596 | result_size += this->ReadInternal(dest.subspan(result_size)); |
| 597 | } |
| 598 | |
| 599 | return result_size; |
| 600 | } |
| 601 | }; |
| 602 | |
| 603 | static char32_t _io_file_lexfeed_ASCII(SQUserPointer file) |
no test coverage detected