Hello,
Using parquet 9.0.2, this compiles:
use parquet::file::reader::SerializedFileReader;
use std::{fs::File, path::Path};
fn reader() {
let path = Path::new("/path/to/sample.parquet");
if let Ok(file) = File::open(&path) {
let _reader = SerializedFileReader::new(file).unwrap();
}
}
Then, I'm adding fs-err 2.6.0, which promises to be "a drop-in replacement for std::fs
that provides more helpful messages on errors." So, I'm trying:
use parquet::file::reader::SerializedFileReader;
use fs_err::File;
use std::path::Path;
fn reader() {
let path = Path::new("/path/to/sample.parquet");
if let Ok(file) = File::open(&path) {
let _reader = SerializedFileReader::new(file).unwrap();
}
}
This no longer compiles and now I get:
error[E0277]: the trait bound `fs_err::File: ChunkReader` is not satisfied
--> src/experiment.rs:8:49
|
8 | let _reader = SerializedFileReader::new(file).unwrap();
| ------------------------- ^^^^ the trait `ChunkReader` is not implemented for `fs_err::File`
| |
| required by a bound introduced by this call
|
note: required by a bound in `SerializedFileReader::<R>::new`
--> /home/oliverr/.cargo/registry/src/github.com-1ecc6299db9ec823/parquet-9.0.2/src/file/serialized_reader.rs:130:19
|
130 | impl<R: 'static + ChunkReader> SerializedFileReader<R> {
| ^^^^^^^^^^^ required by this bound in `SerializedFileReader::<R>::new`
error[E0277]: the trait bound `fs_err::File: ChunkReader` is not satisfied
--> src/experiment.rs:8:23
|
8 | let _reader = SerializedFileReader::new(file).unwrap();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `ChunkReader` is not implemented for `fs_err::File`
|
note: required by a bound in `SerializedFileReader`
--> /home/oliverr/.cargo/registry/src/github.com-1ecc6299db9ec823/parquet-9.0.2/src/file/serialized_reader.rs:125:36
|
125 | pub struct SerializedFileReader<R: ChunkReader> {
| ^^^^^^^^^^^ required by this bound in `SerializedFileReader`
Am I doing something wrong, or is fs-err not a drop-in after all? Any fix?
Thanks!
Best, Oliver