| 59 | namespace dataset { |
| 60 | |
| 61 | FileSource::FileSource(std::shared_ptr<io::RandomAccessFile> file, |
| 62 | Compression::type compression) |
| 63 | : custom_open_([=] { return ToResult(file); }), |
| 64 | custom_size_(-1), |
| 65 | compression_(compression) { |
| 66 | Result<int64_t> maybe_size = file->GetSize(); |
| 67 | if (maybe_size.ok()) { |
| 68 | custom_size_ = *maybe_size; |
| 69 | } else { |
| 70 | custom_open_ = [st = maybe_size.status()] { return st; }; |
| 71 | } |
| 72 | } |
| 73 | |
| 74 | Result<std::shared_ptr<io::RandomAccessFile>> FileSource::Open() const { |
| 75 | if (filesystem_) { |