| 23 | } |
| 24 | |
| 25 | ModuleMetadataView* ModuleMetadataView::fromBuffer(std::span<uint8_t> moduleData) { |
| 26 | assert(moduleData.size() >= sizeof(ModuleMetadataView)); |
| 27 | auto* view = ((ModuleMetadataView*)moduleData.data()); |
| 28 | |
| 29 | if constexpr (std::endian::native == std::endian::big) { |
| 30 | view->nameLength = byteswap<uint16_t>(view->nameLength); |
| 31 | } |
| 32 | return view; |
| 33 | } |
| 34 | |
| 35 | bool ModuleMetadataView::isMetadata(std::span<uint8_t> moduleData) { |
| 36 | return moduleData.size() >= 6 && memcmp(moduleData.data(), MAGIC_NUMBER, 6) == 0; |