12#ifndef O2_MCH_DEVIO_DIGITS_IO_STRUCT_H
13#define O2_MCH_DEVIO_DIGITS_IO_STRUCT_H
18#include <fmt/format.h>
24 gsl::span<const T> items)
26 uint32_t nofItems =
static_cast<uint32_t
>(items.size());
31 os.write(
reinterpret_cast<const char*
>(items.data()), items.size_bytes());
37 if (in.peek() == EOF) {
44 auto offset = items.size();
45 items.resize(
offset + nitems);
46 in.read(
reinterpret_cast<char*
>(&items[
offset]), nitems *
sizeof(T));
48 throw std::length_error(fmt::format(
"invalid input : cannot read {} {}", nitems, itemName));
bool readBinaryStruct(std::istream &in, std::vector< T > &items, const char *itemName)
bool writeBinaryStruct(std::ostream &os, gsl::span< const T > items)
void writeNofItems(std::ostream &out, uint32_t nofItems)
int readNofItems(std::istream &in, const char *itemName)