in cpp/spectrum/image/metadata/Entry.cpp [130:155]
std::vector<std::uint8_t> Entry::MemoryLayout::extractValue(
const ReadContext& context) const {
const auto type =
static_cast<Entry::Type>(core::utils::convertValueToNativeByteOrder(
this->type, context.isLittleEndianEncoded));
switch (type) {
case Entry::UNDEFINED:
case Entry::BYTE:
return extractTypedValue<std::uint8_t>(context);
case Entry::ASCII:
return extractTypedValue<char>(context);
case Entry::SHORT:
return extractTypedValue<std::uint16_t>(context);
case Entry::LONG:
return extractTypedValue<std::uint32_t>(context);
case Entry::RATIONAL:
return extractTypedValue<Rational>(context);
case Entry::SLONG:
return extractTypedValue<int32_t>(context);
case Entry::SRATIONAL:
return extractTypedValue<SRational>(context);
default:
SPECTRUM_UNREACHABLE_METADATA_ENTRY_TYPE(type);
}
}