| 43 | } |
| 44 | |
| 45 | static Result<BytesView> parseField(Parser<Byte>& parser, const LengthField& length) { |
| 46 | auto size = length.size(); |
| 47 | auto fieldData = parser.parse<const Byte>(size); |
| 48 | if (!fieldData) { |
| 49 | return onModuleFailure(fieldData.moveError()); |
| 50 | } |
| 51 | |
| 52 | if (length.hasPadding()) { |
| 53 | auto padding = computePadding(size); |
| 54 | auto skipped = parser.parse<Void>(padding); |
| 55 | if (!skipped) { |
| 56 | return skipped.moveError(); |
| 57 | } |
| 58 | } |
| 59 | |
| 60 | return BytesView(nullptr, fieldData.value(), size); |
| 61 | } |
| 62 | |
| 63 | Result<std::vector<ValdiArchiveEntry>> ValdiArchive::getEntries() const { |
| 64 | auto dataSection = ValdiPacket::read(_dataBegin, _dataEnd - _dataBegin); |
no test coverage detected