| 11 | namespace Common { |
| 12 | |
| 13 | std::tuple<size_t, bool> ArrayOutput::pull(Span<uint8_t> Buf) noexcept { |
| 14 | std::scoped_lock Lock{Mutex}; |
| 15 | |
| 16 | using DataPosT = decltype(Data)::difference_type; |
| 17 | |
| 18 | size_t OutputSize = std::min(Buf.size(), Data.size() - Pos); |
| 19 | |
| 20 | std::copy(Data.begin() + static_cast<DataPosT>(Pos), |
| 21 | Data.begin() + static_cast<DataPosT>(Pos + OutputSize), |
| 22 | Buf.begin()); |
| 23 | Pos += OutputSize; |
| 24 | |
| 25 | return {OutputSize, Pos + OutputSize == Data.size()}; |
| 26 | } |
| 27 | |
| 28 | } // namespace Common |
| 29 | } // namespace WasiCrypto |
no test coverage detected