- inline Result_t Unarchive(ASDCP::MemIOReader& Reader) {
- Result_t result = Reader.ReadUi8(&Tag.a);
- if ( ASDCP_SUCCESS(result) ) result = Reader.ReadUi8(&Tag.b);
- if ( ASDCP_SUCCESS(result) ) result = UL.Unarchive(Reader);
- return result;
+ inline bool HasValue() const { return UL.HasValue(); }
+ inline ui32_t ArchiveLength() const { return 2 + UL.ArchiveLength(); }
+
+ inline bool Unarchive(Kumu::MemIOReader* Reader) {
+ if ( ! Reader->ReadUi8(&Tag.a) ) return false;
+ if ( ! Reader->ReadUi8(&Tag.b) ) return false;
+ return UL.Unarchive(Reader);