#include "read_info.hh" #include #include "directory_info.hh" DirectoryInfo read_info(std::istream& stream) { if (stream.eof()) { return DirectoryInfo{}; } std::string l; std::getline(stream, l); std::istringstream line{ l }; std::string name; size_t size; uint16_t rights; std::string owner; if (!(line >> name)) { return DirectoryInfo{}; } if (!(line >> size)) { return DirectoryInfo{}; } if (!(line >> std::oct >> rights >> std::dec)) { return DirectoryInfo{}; } if (!(line >> owner)) { return DirectoryInfo{}; } if (line.eof()) return DirectoryInfo{ name, size, rights, owner }; return DirectoryInfo{}; }