std::vector Entry::MemoryLayout::extractValue()

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);
  }
}