#include "Book.hpp" #include QTextStream &operator>>(QTextStream &left, Book &right) { auto line = left.readLine(); auto fields = line.split(QChar('|')); if (fields.size() != 6) { throw SerializationException("The line has not 6 parts."); } right.SetIsbn(fields[0].toStdU16String()); right.SetTitle(fields[1].toStdU16String()); right.SetType(fields[2].toStdU16String()); right.SetAuthor(fields[3].toStdU16String()); right.SetPress(fields[4].toStdU16String()); bool ok; auto stock_count = fields[5].toInt(&ok); if (!ok) { throw SerializationException("Part 6 is not a number."); } right.SetStockCount(stock_count); return left; } QTextStream &operator<<(QTextStream &left, const Book &right) { left << right.GetIsbn() << '|' << right.GetTitle() << '|' << right.GetType() << '|' << right.GetAuthor() << '|' << right.GetPress() << '|' << right.GetStockCount(); return left; }